/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.com.hardcodeando.ui;

import ar.com.hardcodeando.ui.*;
import ar.com.hardcodeando.algorithm.Des;
import ar.com.hardcodeando.dto.DesDTO;
import ar.com.hardcodeando.ui.utils.AlgorithmStateStorage;
import java.awt.Color;
import java.awt.Dimension;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;

/**
 *
 * @author Nacho
 */
public class DesPanelEvaluar extends javax.swing.JPanel {

    private Des des;
    
    /**
     * Creates new form HillPanel
     */
    public DesPanelEvaluar() {
        initComponents();
  
        des = new Des();
        jTabbedPane1.setEnabledAt(1, false);
        jTabbedPane1.setEnabledAt(2, false);
        jTabbedPane1.setEnabledAt(3, false);
        jTabbedPane1.setEnabledAt(4, false);
        jTabbedPane1.setEnabledAt(5, false);
        jTabbedPane1.setEnabledAt(6, false);
        jTabbedPane1.setEnabledAt(7, false);
        
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel4 = new javax.swing.JPanel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jButton13 = new javax.swing.JButton();
        jLabel34 = new javax.swing.JLabel();
        jLabel35 = new javax.swing.JLabel();
        jLabel36 = new javax.swing.JLabel();
        jLabel37 = new javax.swing.JLabel();
        jLabel38 = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        jLabel11 = new javax.swing.JLabel();
        jButton5 = new javax.swing.JButton();
        jLabel39 = new javax.swing.JLabel();
        jTextField7 = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jTextField8 = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        jTextField9 = new javax.swing.JTextField();
        jLabel10 = new javax.swing.JLabel();
        jTextField10 = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jTextField11 = new javax.swing.JTextField();
        jLabel15 = new javax.swing.JLabel();
        jTextField12 = new javax.swing.JTextField();
        jLabel16 = new javax.swing.JLabel();
        jTextField13 = new javax.swing.JTextField();
        jLabel17 = new javax.swing.JLabel();
        jTextField14 = new javax.swing.JTextField();
        jLabel18 = new javax.swing.JLabel();
        jTextField15 = new javax.swing.JTextField();
        jLabel53 = new javax.swing.JLabel();
        jTextField16 = new javax.swing.JTextField();
        jLabel54 = new javax.swing.JLabel();
        jTextField17 = new javax.swing.JTextField();
        jLabel55 = new javax.swing.JLabel();
        jTextField18 = new javax.swing.JTextField();
        jLabel56 = new javax.swing.JLabel();
        jLabel57 = new javax.swing.JLabel();
        jTextField19 = new javax.swing.JTextField();
        jLabel58 = new javax.swing.JLabel();
        jTextField20 = new javax.swing.JTextField();
        jLabel59 = new javax.swing.JLabel();
        jTextField21 = new javax.swing.JTextField();
        jLabel60 = new javax.swing.JLabel();
        jTextField22 = new javax.swing.JTextField();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jLabel33 = new javax.swing.JLabel();
        jLabel42 = new javax.swing.JLabel();
        jButton19 = new javax.swing.JButton();
        jButton35 = new javax.swing.JButton();
        jPanel7 = new javax.swing.JPanel();
        jLabel24 = new javax.swing.JLabel();
        jLabel28 = new javax.swing.JLabel();
        jLabel29 = new javax.swing.JLabel();
        jButton6 = new javax.swing.JButton();
        jLabel40 = new javax.swing.JLabel();
        jLabel61 = new javax.swing.JLabel();
        jTextField23 = new javax.swing.JTextField();
        jLabel62 = new javax.swing.JLabel();
        jLabel63 = new javax.swing.JLabel();
        jTextField24 = new javax.swing.JTextField();
        jLabel64 = new javax.swing.JLabel();
        jTextField25 = new javax.swing.JTextField();
        jLabel65 = new javax.swing.JLabel();
        jTextField26 = new javax.swing.JTextField();
        jLabel66 = new javax.swing.JLabel();
        jButton15 = new javax.swing.JButton();
        jButton16 = new javax.swing.JButton();
        jLabel67 = new javax.swing.JLabel();
        jLabel43 = new javax.swing.JLabel();
        jButton28 = new javax.swing.JButton();
        jButton36 = new javax.swing.JButton();
        jPanel8 = new javax.swing.JPanel();
        jLabel13 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jLabel41 = new javax.swing.JLabel();
        jLabel19 = new javax.swing.JLabel();
        jTextField27 = new javax.swing.JTextField();
        jLabel20 = new javax.swing.JLabel();
        jLabel21 = new javax.swing.JLabel();
        jLabel22 = new javax.swing.JLabel();
        jTextField28 = new javax.swing.JTextField();
        jLabel23 = new javax.swing.JLabel();
        jLabel25 = new javax.swing.JLabel();
        jTextField29 = new javax.swing.JTextField();
        jLabel26 = new javax.swing.JLabel();
        jLabel27 = new javax.swing.JLabel();
        jTextField30 = new javax.swing.JTextField();
        jLabel68 = new javax.swing.JLabel();
        jLabel69 = new javax.swing.JLabel();
        jTextField31 = new javax.swing.JTextField();
        jLabel70 = new javax.swing.JLabel();
        jLabel71 = new javax.swing.JLabel();
        jTextField32 = new javax.swing.JTextField();
        jLabel72 = new javax.swing.JLabel();
        jLabel73 = new javax.swing.JLabel();
        jTextField33 = new javax.swing.JTextField();
        jLabel74 = new javax.swing.JLabel();
        jLabel75 = new javax.swing.JLabel();
        jTextField34 = new javax.swing.JTextField();
        jLabel76 = new javax.swing.JLabel();
        jButton7 = new javax.swing.JButton();
        jButton8 = new javax.swing.JButton();
        jButton29 = new javax.swing.JButton();
        jLabel44 = new javax.swing.JLabel();
        jButton37 = new javax.swing.JButton();
        jPanel9 = new javax.swing.JPanel();
        jLabel95 = new javax.swing.JLabel();
        jButton9 = new javax.swing.JButton();
        jLabel96 = new javax.swing.JLabel();
        jLabel97 = new javax.swing.JLabel();
        jTextField43 = new javax.swing.JTextField();
        jLabel98 = new javax.swing.JLabel();
        jLabel99 = new javax.swing.JLabel();
        jLabel100 = new javax.swing.JLabel();
        jTextField44 = new javax.swing.JTextField();
        jLabel101 = new javax.swing.JLabel();
        jLabel102 = new javax.swing.JLabel();
        jTextField45 = new javax.swing.JTextField();
        jLabel103 = new javax.swing.JLabel();
        jLabel104 = new javax.swing.JLabel();
        jTextField46 = new javax.swing.JTextField();
        jLabel105 = new javax.swing.JLabel();
        jLabel106 = new javax.swing.JLabel();
        jTextField47 = new javax.swing.JTextField();
        jLabel107 = new javax.swing.JLabel();
        jLabel108 = new javax.swing.JLabel();
        jTextField48 = new javax.swing.JTextField();
        jLabel109 = new javax.swing.JLabel();
        jLabel110 = new javax.swing.JLabel();
        jTextField49 = new javax.swing.JTextField();
        jLabel111 = new javax.swing.JLabel();
        jLabel112 = new javax.swing.JLabel();
        jTextField50 = new javax.swing.JTextField();
        jLabel113 = new javax.swing.JLabel();
        jButton20 = new javax.swing.JButton();
        jButton21 = new javax.swing.JButton();
        jButton30 = new javax.swing.JButton();
        jLabel77 = new javax.swing.JLabel();
        jButton38 = new javax.swing.JButton();
        jPanel14 = new javax.swing.JPanel();
        jLabel114 = new javax.swing.JLabel();
        jButton22 = new javax.swing.JButton();
        jLabel115 = new javax.swing.JLabel();
        jLabel116 = new javax.swing.JLabel();
        jTextField51 = new javax.swing.JTextField();
        jLabel117 = new javax.swing.JLabel();
        jLabel118 = new javax.swing.JLabel();
        jLabel119 = new javax.swing.JLabel();
        jTextField52 = new javax.swing.JTextField();
        jLabel120 = new javax.swing.JLabel();
        jLabel121 = new javax.swing.JLabel();
        jTextField53 = new javax.swing.JTextField();
        jLabel122 = new javax.swing.JLabel();
        jLabel123 = new javax.swing.JLabel();
        jTextField54 = new javax.swing.JTextField();
        jLabel124 = new javax.swing.JLabel();
        jLabel125 = new javax.swing.JLabel();
        jTextField55 = new javax.swing.JTextField();
        jLabel126 = new javax.swing.JLabel();
        jLabel127 = new javax.swing.JLabel();
        jTextField56 = new javax.swing.JTextField();
        jLabel128 = new javax.swing.JLabel();
        jLabel129 = new javax.swing.JLabel();
        jTextField57 = new javax.swing.JTextField();
        jLabel130 = new javax.swing.JLabel();
        jLabel131 = new javax.swing.JLabel();
        jTextField58 = new javax.swing.JTextField();
        jLabel132 = new javax.swing.JLabel();
        jButton23 = new javax.swing.JButton();
        jButton24 = new javax.swing.JButton();
        jButton31 = new javax.swing.JButton();
        jLabel78 = new javax.swing.JLabel();
        jButton39 = new javax.swing.JButton();
        jPanel15 = new javax.swing.JPanel();
        jLabel133 = new javax.swing.JLabel();
        jButton25 = new javax.swing.JButton();
        jLabel134 = new javax.swing.JLabel();
        jLabel135 = new javax.swing.JLabel();
        jTextField59 = new javax.swing.JTextField();
        jLabel136 = new javax.swing.JLabel();
        jLabel137 = new javax.swing.JLabel();
        jLabel138 = new javax.swing.JLabel();
        jTextField60 = new javax.swing.JTextField();
        jLabel139 = new javax.swing.JLabel();
        jLabel140 = new javax.swing.JLabel();
        jTextField61 = new javax.swing.JTextField();
        jLabel141 = new javax.swing.JLabel();
        jLabel142 = new javax.swing.JLabel();
        jTextField62 = new javax.swing.JTextField();
        jLabel143 = new javax.swing.JLabel();
        jLabel144 = new javax.swing.JLabel();
        jTextField63 = new javax.swing.JTextField();
        jLabel145 = new javax.swing.JLabel();
        jLabel146 = new javax.swing.JLabel();
        jTextField64 = new javax.swing.JTextField();
        jLabel147 = new javax.swing.JLabel();
        jLabel148 = new javax.swing.JLabel();
        jTextField65 = new javax.swing.JTextField();
        jLabel149 = new javax.swing.JLabel();
        jLabel150 = new javax.swing.JLabel();
        jTextField66 = new javax.swing.JTextField();
        jLabel151 = new javax.swing.JLabel();
        jButton26 = new javax.swing.JButton();
        jButton27 = new javax.swing.JButton();
        jButton32 = new javax.swing.JButton();
        jLabel79 = new javax.swing.JLabel();
        jButton40 = new javax.swing.JButton();
        jPanel12 = new javax.swing.JPanel();
        jLabel30 = new javax.swing.JLabel();
        jLabel31 = new javax.swing.JLabel();
        jLabel32 = new javax.swing.JLabel();
        jButton12 = new javax.swing.JButton();
        jLabel45 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jTextField35 = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jTextField36 = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jButton10 = new javax.swing.JButton();
        jButton11 = new javax.swing.JButton();
        jButton17 = new javax.swing.JButton();
        jButton33 = new javax.swing.JButton();
        jLabel80 = new javax.swing.JLabel();
        jButton41 = new javax.swing.JButton();
        jPanel13 = new javax.swing.JPanel();
        jLabel46 = new javax.swing.JLabel();
        jLabel47 = new javax.swing.JLabel();
        jLabel48 = new javax.swing.JLabel();
        jTextField4 = new javax.swing.JTextField();
        jLabel49 = new javax.swing.JLabel();
        jTextField5 = new javax.swing.JTextField();
        jLabel50 = new javax.swing.JLabel();
        jTextField6 = new javax.swing.JTextField();
        jButton14 = new javax.swing.JButton();
        jLabel51 = new javax.swing.JLabel();
        jLabel52 = new javax.swing.JLabel();
        jButton18 = new javax.swing.JButton();
        jLabel81 = new javax.swing.JLabel();
        jButton34 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        setPreferredSize(new java.awt.Dimension(1024, 1024));

        jTabbedPane1.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jPanel4.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/general.png"))); // NOI18N

        jLabel6.setText("<html><body>Para empezar, elija el mensaje y la clave en formato hexadecimal que ser&aacute;n utilizados para evaluar su aprendizaje. <br>Ambos valores deben ser de 16 caracteres (64 bits)</body></html>");

        jButton2.setText("Siguiente");
        jButton2.setEnabled(false);
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jTextField1.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jTextField1.setText("133457799BBCDFF1");
        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jTextField2.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jTextField2.setText("0123456789ABCDEF");
        jTextField2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField2ActionPerformed(evt);
            }
        });

        jButton13.setText("Validar");
        jButton13.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton13ActionPerformed(evt);
            }
        });

        jLabel34.setText("Mensaje:");

        jLabel35.setText("Clave:");

        jLabel36.setText("<html><body>Durante los pasos sucesivos, se deber&aacute;n completar los campos con valores binarios, salvo que se indique lo contrario.</body></html>");

        jLabel37.setForeground(new java.awt.Color(228, 27, 27));

        jLabel38.setForeground(new java.awt.Color(228, 27, 27));

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 528, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(jButton2))
                    .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, 787, Short.MAX_VALUE)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jButton13)
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(jLabel35, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jLabel34, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel4Layout.createSequentialGroup()
                                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabel38, javax.swing.GroupLayout.PREFERRED_SIZE, 297, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel4Layout.createSequentialGroup()
                                        .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabel37, javax.swing.GroupLayout.PREFERRED_SIZE, 297, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addComponent(jLabel36, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel34)
                            .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel37, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(23, 23, 23)
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel35))
                            .addComponent(jLabel38, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(jLabel36, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jButton13))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton2))))
                    .addComponent(jLabel5))
                .addContainerGap(391, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Introducción", jPanel4);

        jPanel3.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel11.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        jLabel11.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jLabel11.setVerticalTextPosition(javax.swing.SwingConstants.TOP);

        jButton5.setText("Siguiente");
        jButton5.setEnabled(false);
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        jLabel39.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/subclaves3.png"))); // NOI18N

        jTextField7.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N
        jTextField7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField7ActionPerformed(evt);
            }
        });

        jLabel8.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel8.setText("P (K) = ");

        jTextField8.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel9.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel9.setText("C0 = ");

        jTextField9.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel10.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel10.setText("D0 = ");

        jTextField10.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel14.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel14.setText("C1 = ");

        jTextField11.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel15.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel15.setText("D1 = ");

        jTextField12.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel16.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel16.setText("C2 = ");

        jTextField13.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel17.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel17.setText("D2 = ");

        jTextField14.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel18.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel18.setText("C3 = ");

        jTextField15.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel53.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel53.setText("D3 = ");

        jTextField16.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel54.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel54.setText("C4 = ");

        jTextField17.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel55.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel55.setText("D4 = ");

        jTextField18.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel57.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel57.setText("K1 = ");

        jTextField19.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel58.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel58.setText("K2 = ");

        jTextField20.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel59.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel59.setText("K3 = ");

        jTextField21.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel60.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel60.setText("K4 = ");

        jTextField22.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jButton3.setText("Resolver");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jButton4.setText("Evaluar");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jLabel33.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel33.setText("K = ");

        jButton19.setText("Limpiar");
        jButton19.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton19ActionPerformed(evt);
            }
        });

        jButton35.setText("Guardar");
        jButton35.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton35ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel39)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                                .addGap(6, 6, 6)
                                .addComponent(jButton19)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton35)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton5))
                            .addComponent(jLabel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel56, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel3Layout.createSequentialGroup()
                                        .addComponent(jLabel8)
                                        .addGap(18, 18, 18)
                                        .addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel3Layout.createSequentialGroup()
                                        .addComponent(jLabel9)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabel10)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel3Layout.createSequentialGroup()
                                        .addComponent(jLabel54)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField17, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel3Layout.createSequentialGroup()
                                        .addComponent(jLabel18)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField15, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel3Layout.createSequentialGroup()
                                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                .addComponent(jLabel14)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                .addComponent(jLabel16)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jTextField13, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                .addComponent(jLabel55)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jTextField18))
                                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                                                .addComponent(jLabel53)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jTextField16))
                                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                                                .addComponent(jLabel17)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jTextField14))
                                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                                                .addComponent(jLabel15)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jTextField12, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE))))
                                    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup()
                                            .addComponent(jLabel60)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(jTextField22))
                                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup()
                                            .addComponent(jLabel59)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(jTextField21))
                                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup()
                                            .addComponent(jLabel58)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(jTextField20))
                                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup()
                                            .addComponent(jLabel57)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(jTextField19, javax.swing.GroupLayout.PREFERRED_SIZE, 420, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addGroup(jPanel3Layout.createSequentialGroup()
                                        .addComponent(jLabel33)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, 525, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(0, 155, Short.MAX_VALUE)))
                        .addContainerGap())
                    .addComponent(jLabel42, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel39)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel11)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel33))
                        .addGap(24, 24, 24)
                        .addComponent(jLabel7)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel8)
                            .addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel9)
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel10)
                                .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(18, 18, 18)
                        .addComponent(jLabel12)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel14)
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel15)
                                .addComponent(jTextField12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel16)
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jTextField13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel17)
                                .addComponent(jTextField14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel18)
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jTextField15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel53)
                                .addComponent(jTextField16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel54)
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jTextField17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel55)
                                .addComponent(jTextField18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(18, 18, 18)
                        .addComponent(jLabel56)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel57)
                            .addComponent(jTextField19, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel58)
                            .addComponent(jTextField20, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel59)
                            .addComponent(jTextField21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel60)
                            .addComponent(jTextField22, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(jLabel42)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jButton5)
                            .addComponent(jButton3)
                            .addComponent(jButton4)
                            .addComponent(jButton19)
                            .addComponent(jButton35))))
                .addContainerGap(311, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Subclaves", jPanel3);

        jPanel7.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jLabel24.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel24.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jLabel28.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel28.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/ip.png"))); // NOI18N

        jLabel29.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel29.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jButton6.setText("Siguiente");
        jButton6.setEnabled(false);
        jButton6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton6ActionPerformed(evt);
            }
        });

        jLabel40.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/general1.png"))); // NOI18N

        jLabel61.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel61.setText("M = ");

        jTextField23.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel63.setText("<html><body>Resultando de dicha permutaci&oacute;n: (64 bits)</body></html>");

        jTextField24.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel64.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel64.setText("L0 = ");

        jTextField25.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel65.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel65.setText("R0 = ");

        jTextField26.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jButton15.setText("Resolver");
        jButton15.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton15ActionPerformed(evt);
            }
        });

        jButton16.setText("Evaluar");
        jButton16.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton16ActionPerformed(evt);
            }
        });

        jLabel67.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel67.setText("P1 = ");

        jButton28.setText("Limpiar");
        jButton28.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton28ActionPerformed(evt);
            }
        });

        jButton36.setText("Guardar");
        jButton36.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton36ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel40)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel24, javax.swing.GroupLayout.DEFAULT_SIZE, 781, Short.MAX_VALUE)
                    .addComponent(jLabel62, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel29, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout.createSequentialGroup()
                        .addComponent(jButton28)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton36)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jButton16)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton15)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton6))
                    .addComponent(jLabel63)
                    .addComponent(jLabel66, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel7Layout.createSequentialGroup()
                        .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel28, javax.swing.GroupLayout.PREFERRED_SIZE, 550, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel7Layout.createSequentialGroup()
                                    .addComponent(jLabel65)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jTextField26))
                                .addGroup(jPanel7Layout.createSequentialGroup()
                                    .addComponent(jLabel64)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jTextField25, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(jPanel7Layout.createSequentialGroup()
                                .addComponent(jLabel61)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextField23, javax.swing.GroupLayout.PREFERRED_SIZE, 510, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel7Layout.createSequentialGroup()
                                .addComponent(jLabel67)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextField24, javax.swing.GroupLayout.PREFERRED_SIZE, 540, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(0, 111, Short.MAX_VALUE))
                    .addComponent(jLabel43, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel40)
                    .addGroup(jPanel7Layout.createSequentialGroup()
                        .addComponent(jLabel24)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel61)
                            .addComponent(jTextField23, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel62)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel28)
                        .addGap(18, 18, 18)
                        .addComponent(jLabel63, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextField24, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel67))
                        .addGap(18, 18, 18)
                        .addComponent(jLabel29)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel64)
                            .addComponent(jTextField25, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(10, 10, 10)
                        .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel65)
                            .addComponent(jTextField26, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel66)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel43)
                        .addGap(18, 18, 18)
                        .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jButton6)
                            .addComponent(jButton15)
                            .addComponent(jButton16)
                            .addComponent(jButton28)
                            .addComponent(jButton36))))
                .addContainerGap(391, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Ronda Inicial", jPanel7);

        jPanel8.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel13.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jButton1.setText("Siguiente");
        jButton1.setEnabled(false);
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel41.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/ronda.png"))); // NOI18N

        jLabel19.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel19.setText("E(R0) = ");

        jTextField27.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel20.setText("<html><body><b>2) </b>Al resultado de dicha expansi&oacute;n, le aplico un OR-exclusivo con la clave K(1) obtenida anteriormente, en este caso: </body><html>");

        jLabel22.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel22.setText("K1 (+) E(R0) = ");

        jTextField28.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel23.setText("<html><body><b>3) </b>Ahora debo separar esos bits en 8 bloques de 6 bits cada uno. A cada uno de estos bloques debo aplicarles las S-Cajas correspondientes, para ello: tomar los bits 1º y 6º de B(j) y formar un n&uacute;mero de 2 bits que llamaremos <b>m</b>. Este valor nos indicar&aacute; la fila en la tabla de sustituci&oacute;n correspondiente S(j). Obs&eacute;rvese que m=0 representa la 1ª fila y m=3 la última.<br> </body></html>");

        jLabel25.setText("<html><body>En nuestro caso, para B1, <b>m = </b><body><html>");

        jTextField29.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel26.setText("<html><body>Con los bits 2º a 5º de B(j) formar otro n&uacute;mero, <b>n</b>, de cuatro bits que indicar&aacute; la columna de S(j) en la que buscar el valor de sustituci&oacute;n. En esta ocasi&oacute;n n=0 representa la 1ª columna y n=15 la &uacute;ltima columna.<br></body></html>");

        jLabel27.setText("<html><body>En nuestro caso, para B1, <b>n = </b><body><html>");

        jTextField30.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel68.setText("<html><body>Por ende, utilizando S1, el bloque B1 se reemplazara con el valor hayado en la coordenada <b>(m,n)</b>. Dicho valor debe ser escrito en 4 bits, o sea:<body><html> ");

        jLabel69.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel69.setText("S1(B1) = ");

        jTextField31.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel70.setText("<html><body>Siguiendo con el resto de los bloques, obtenemos: (32 bits)</body></html>");

        jLabel71.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel71.setText("S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = ");

        jTextField32.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel72.setText("<html><body><b>4)</b> A este resultado le aplico la permutaci&oacute;n P y obtengo: (32 bits)</body></html>");

        jLabel73.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel73.setText("P = ");

        jTextField33.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel74.setText("<html><body><b>5)</b> Luego, realizo un &uacute;ltimo OR-exclusivo con el valor L0 inicial (que no fue modificado), obteniendo: (32 bits)</body></html>");

        jLabel75.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel75.setText("P (+) L0 = ");

        jTextField34.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel76.setText("<html><body>Este valor obtenido, es el nuevo R1, mientras que el R0 original pasa a ser el L1. Con dichos bloques, se inicia la siguiente ronda que repetir&aacute; los mismos pasos. </body></html>");

        jButton7.setText("Resolver");
        jButton7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton7ActionPerformed(evt);
            }
        });

        jButton8.setText("Evaluar");
        jButton8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton8ActionPerformed(evt);
            }
        });

        jButton29.setText("Limpiar");
        jButton29.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton29ActionPerformed(evt);
            }
        });

        jButton37.setText("Guardar");
        jButton37.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton37ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel41)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel8Layout.createSequentialGroup()
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel8Layout.createSequentialGroup()
                                .addComponent(jButton29)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton37)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton8)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton7)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton1))
                            .addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel20, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel21, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel26, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel68, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel70)
                            .addComponent(jLabel72)
                            .addComponent(jLabel74)
                            .addComponent(jLabel76, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addGroup(jPanel8Layout.createSequentialGroup()
                                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                        .addComponent(jLabel19)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField27, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                        .addComponent(jLabel22)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField28, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                        .addComponent(jLabel25, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField29, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                        .addComponent(jLabel27, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField30, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                        .addComponent(jLabel69)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField31, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                        .addComponent(jLabel71)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField32, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                        .addComponent(jLabel73)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField33, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                        .addComponent(jLabel75)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField34, javax.swing.GroupLayout.PREFERRED_SIZE, 305, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(0, 0, Short.MAX_VALUE)))
                        .addContainerGap())
                    .addComponent(jLabel44, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel41)
                    .addGroup(jPanel8Layout.createSequentialGroup()
                        .addComponent(jLabel13)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel19)
                            .addComponent(jTextField27, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel20, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel21)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel22)
                            .addComponent(jTextField28, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel25, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField29, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel26, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel27, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField30, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel68, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel69)
                            .addComponent(jTextField31, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel70, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel71)
                            .addComponent(jTextField32, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel72, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel73)
                            .addComponent(jTextField33, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel74, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel75)
                            .addComponent(jTextField34, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel76, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel44)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton7)
                    .addComponent(jButton8)
                    .addComponent(jButton29)
                    .addComponent(jButton37))
                .addContainerGap(216, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Ronda 1", jPanel8);

        jPanel9.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jLabel95.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel95.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jButton9.setText("Siguiente");
        jButton9.setEnabled(false);
        jButton9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton9ActionPerformed(evt);
            }
        });

        jLabel96.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/ronda.png"))); // NOI18N

        jLabel97.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel97.setText("E(R1) = ");

        jTextField43.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel98.setText("<html><body><b>2) </b>Al resultado de dicha expansi&oacute;n, le aplico un OR-exclusivo con la clave K(2) obtenida anteriormente, en este caso: </body><html>");

        jLabel100.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel100.setText("K2 (+) E(R1) = ");

        jTextField44.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel101.setText("<html><body><b>3) </b>Ahora debo separar esos bits en 8 bloques de 6 bits cada uno. A cada uno de estos bloques debo aplicarles las S-Cajas correspondientes, para ello: tomar los bits 1º y 6º de B(j) y formar un n&uacute;mero de 2 bits que llamaremos <b>m</b>. Este valor nos indicar&aacute; la fila en la tabla de sustituci&oacute;n correspondiente S(j). Obs&eacute;rvese que m=0 representa la 1ª fila y m=3 la última.<br> </body></html>");

        jLabel102.setText("<html><body>En nuestro caso, para B1, <b>m = </b><body><html>");

        jTextField45.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel103.setText("<html><body>Con los bits 2º a 5º de B(j) formar otro n&uacute;mero, <b>n</b>, de cuatro bits que indicar&aacute; la columna de S(j) en la que buscar el valor de sustituci&oacute;n. En esta ocasi&oacute;n n=0 representa la 1ª columna y n=15 la &uacute;ltima columna.<br></body></html>");

        jLabel104.setText("<html><body>En nuestro caso, para B1, <b>n = </b><body><html>");

        jTextField46.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel105.setText("<html><body>Por ende, utilizando S1, el bloque B1 se reemplazara con el valor hayado en la coordenada <b>(m,n)</b>. Dicho valor debe ser escrito en 4 bits, o sea:<body><html> ");

        jLabel106.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel106.setText("S1(B1) = ");

        jTextField47.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel107.setText("<html><body>Siguiendo con el resto de los bloques, obtenemos: (32 bits)</body></html>");

        jLabel108.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel108.setText("S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = ");

        jTextField48.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel109.setText("<html><body><b>4)</b> A este resultado le aplico la permutaci&oacute;n P y obtengo: (32 bits)</body></html>");

        jLabel110.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel110.setText("P = ");

        jTextField49.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel111.setText("<html><body><b>5)</b> Luego, realizo un &uacute;ltimo OR-exclusivo con el valor L0 inicial (que no fue modificado), obteniendo: (32 bits)</body></html>");

        jLabel112.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel112.setText("P (+) L1 = ");

        jTextField50.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel113.setText("<html><body>Este valor obtenido, es el nuevo R2, mientras que el R1 original pasa a ser el L2. Con dichos bloques, se inicia la siguiente ronda que repetir&aacute; los mismos pasos. </body></html>");

        jButton20.setText("Resolver");
        jButton20.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton20ActionPerformed(evt);
            }
        });

        jButton21.setText("Evaluar");
        jButton21.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton21ActionPerformed(evt);
            }
        });

        jButton30.setText("Limpiar");
        jButton30.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton30ActionPerformed(evt);
            }
        });

        jButton38.setText("Guardar");
        jButton38.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton38ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
        jPanel9.setLayout(jPanel9Layout);
        jPanel9Layout.setHorizontalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel9Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel96)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel9Layout.createSequentialGroup()
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel9Layout.createSequentialGroup()
                                .addComponent(jButton30)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton38)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton21)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton20)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton9))
                            .addComponent(jLabel95, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel98, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel99, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel101, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel103, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel105, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel107)
                            .addComponent(jLabel109)
                            .addComponent(jLabel111)
                            .addComponent(jLabel113, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addGroup(jPanel9Layout.createSequentialGroup()
                                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel9Layout.createSequentialGroup()
                                        .addComponent(jLabel97)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField43, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel9Layout.createSequentialGroup()
                                        .addComponent(jLabel100)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField44, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel9Layout.createSequentialGroup()
                                        .addComponent(jLabel102, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField45, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel9Layout.createSequentialGroup()
                                        .addComponent(jLabel104, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField46, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel9Layout.createSequentialGroup()
                                        .addComponent(jLabel106)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField47, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel9Layout.createSequentialGroup()
                                        .addComponent(jLabel108)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField48, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel9Layout.createSequentialGroup()
                                        .addComponent(jLabel110)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField49, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel9Layout.createSequentialGroup()
                                        .addComponent(jLabel112)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField50, javax.swing.GroupLayout.PREFERRED_SIZE, 305, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(0, 0, Short.MAX_VALUE)))
                        .addContainerGap())
                    .addComponent(jLabel77, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        jPanel9Layout.setVerticalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel96)
                    .addGroup(jPanel9Layout.createSequentialGroup()
                        .addComponent(jLabel95)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel97)
                            .addComponent(jTextField43, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel98, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel99)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel100)
                            .addComponent(jTextField44, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel101, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel102, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField45, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel103, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel104, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField46, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel105, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel106)
                            .addComponent(jTextField47, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel107, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel108)
                            .addComponent(jTextField48, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel109, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel110)
                            .addComponent(jTextField49, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel111, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel112)
                            .addComponent(jTextField50, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel113, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel77)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton9)
                    .addComponent(jButton20)
                    .addComponent(jButton21)
                    .addComponent(jButton30)
                    .addComponent(jButton38))
                .addContainerGap(216, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Ronda 2", jPanel9);

        jPanel14.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jLabel114.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel114.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jButton22.setText("Siguiente");
        jButton22.setEnabled(false);
        jButton22.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton22ActionPerformed(evt);
            }
        });

        jLabel115.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/ronda.png"))); // NOI18N

        jLabel116.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel116.setText("E(R2) = ");

        jTextField51.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel117.setText("<html><body><b>2) </b>Al resultado de dicha expansi&oacute;n, le aplico un OR-exclusivo con la clave K(3) obtenida anteriormente, en este caso: </body><html>");

        jLabel119.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel119.setText("K3 (+) E(R2) = ");

        jTextField52.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel120.setText("<html><body><b>3) </b>Ahora debo separar esos bits en 8 bloques de 6 bits cada uno. A cada uno de estos bloques debo aplicarles las S-Cajas correspondientes, para ello: tomar los bits 1º y 6º de B(j) y formar un n&uacute;mero de 2 bits que llamaremos <b>m</b>. Este valor nos indicar&aacute; la fila en la tabla de sustituci&oacute;n correspondiente S(j). Obs&eacute;rvese que m=0 representa la 1ª fila y m=3 la última.<br> </body></html>");

        jLabel121.setText("<html><body>En nuestro caso, para B1, <b>m = </b><body><html>");

        jTextField53.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel122.setText("<html><body>Con los bits 2º a 5º de B(j) formar otro n&uacute;mero, <b>n</b>, de cuatro bits que indicar&aacute; la columna de S(j) en la que buscar el valor de sustituci&oacute;n. En esta ocasi&oacute;n n=0 representa la 1ª columna y n=15 la &uacute;ltima columna.<br></body></html>");

        jLabel123.setText("<html><body>En nuestro caso, para B1, <b>n = </b><body><html>");

        jTextField54.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel124.setText("<html><body>Por ende, utilizando S1, el bloque B1 se reemplazara con el valor hayado en la coordenada <b>(m,n)</b>. Dicho valor debe ser escrito en 4 bits, o sea:<body><html> ");

        jLabel125.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel125.setText("S1(B1) = ");

        jTextField55.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel126.setText("<html><body>Siguiendo con el resto de los bloques, obtenemos: (32 bits)</body></html>");

        jLabel127.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel127.setText("S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = ");

        jTextField56.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel128.setText("<html><body><b>4)</b> A este resultado le aplico la permutaci&oacute;n P y obtengo: (32 bits)</body></html>");

        jLabel129.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel129.setText("P = ");

        jTextField57.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel130.setText("<html><body><b>5)</b> Luego, realizo un &uacute;ltimo OR-exclusivo con el valor L0 inicial (que no fue modificado), obteniendo: (32 bits)</body></html>");

        jLabel131.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel131.setText("P (+) L2 = ");

        jTextField58.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel132.setText("<html><body>Este valor obtenido, es el nuevo R3, mientras que el R2 original pasa a ser el L3. Con dichos bloques, se inicia la siguiente ronda que repetir&aacute; los mismos pasos. </body></html>");

        jButton23.setText("Resolver");
        jButton23.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton23ActionPerformed(evt);
            }
        });

        jButton24.setText("Evaluar");
        jButton24.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton24ActionPerformed(evt);
            }
        });

        jButton31.setText("Limpiar");
        jButton31.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton31ActionPerformed(evt);
            }
        });

        jButton39.setText("Guardar");
        jButton39.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton39ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14);
        jPanel14.setLayout(jPanel14Layout);
        jPanel14Layout.setHorizontalGroup(
            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel14Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel115)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel14Layout.createSequentialGroup()
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel14Layout.createSequentialGroup()
                                .addComponent(jButton31)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton39)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton24)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton23)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton22))
                            .addComponent(jLabel114, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel117, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel118, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel120, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel122, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel124, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel126)
                            .addComponent(jLabel128)
                            .addComponent(jLabel130)
                            .addComponent(jLabel132, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addGroup(jPanel14Layout.createSequentialGroup()
                                .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel14Layout.createSequentialGroup()
                                        .addComponent(jLabel116)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField51, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel14Layout.createSequentialGroup()
                                        .addComponent(jLabel119)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField52, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel14Layout.createSequentialGroup()
                                        .addComponent(jLabel121, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField53, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel14Layout.createSequentialGroup()
                                        .addComponent(jLabel123, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField54, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel14Layout.createSequentialGroup()
                                        .addComponent(jLabel125)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField55, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel14Layout.createSequentialGroup()
                                        .addComponent(jLabel127)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField56, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel14Layout.createSequentialGroup()
                                        .addComponent(jLabel129)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField57, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel14Layout.createSequentialGroup()
                                        .addComponent(jLabel131)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField58, javax.swing.GroupLayout.PREFERRED_SIZE, 305, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(0, 0, Short.MAX_VALUE)))
                        .addContainerGap())
                    .addComponent(jLabel78, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        jPanel14Layout.setVerticalGroup(
            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel14Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel115)
                    .addGroup(jPanel14Layout.createSequentialGroup()
                        .addComponent(jLabel114)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel116)
                            .addComponent(jTextField51, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel117, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel118)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel119)
                            .addComponent(jTextField52, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel120, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel121, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField53, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel122, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel123, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField54, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel124, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel125)
                            .addComponent(jTextField55, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel126, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel127)
                            .addComponent(jTextField56, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel128, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel129)
                            .addComponent(jTextField57, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel130, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel131)
                            .addComponent(jTextField58, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel132, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel78)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton22)
                    .addComponent(jButton23)
                    .addComponent(jButton24)
                    .addComponent(jButton31)
                    .addComponent(jButton39))
                .addContainerGap(216, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Ronda 3", jPanel14);

        jPanel15.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jLabel133.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel133.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jButton25.setText("Siguiente");
        jButton25.setEnabled(false);
        jButton25.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton25ActionPerformed(evt);
            }
        });

        jLabel134.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/ronda.png"))); // NOI18N

        jLabel135.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel135.setText("E(R15) = ");

        jTextField59.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel136.setText("<html><body><b>2) </b>Al resultado de dicha expansi&oacute;n, le aplico un OR-exclusivo con la clave K(16) obtenida anteriormente, en este caso: </body><html>");

        jLabel138.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel138.setText("K16 (+) E(R15) = ");

        jTextField60.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel139.setText("<html><body><b>3) </b>Ahora debo separar esos bits en 8 bloques de 6 bits cada uno. A cada uno de estos bloques debo aplicarles las S-Cajas correspondientes, para ello: tomar los bits 1º y 6º de B(j) y formar un n&uacute;mero de 2 bits que llamaremos <b>m</b>. Este valor nos indicar&aacute; la fila en la tabla de sustituci&oacute;n correspondiente S(j). Obs&eacute;rvese que m=0 representa la 1ª fila y m=3 la última.<br> </body></html>");

        jLabel140.setText("<html><body>En nuestro caso, para B1, <b>m = </b><body><html>");

        jTextField61.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel141.setText("<html><body>Con los bits 2º a 5º de B(j) formar otro n&uacute;mero, <b>n</b>, de cuatro bits que indicar&aacute; la columna de S(j) en la que buscar el valor de sustituci&oacute;n. En esta ocasi&oacute;n n=0 representa la 1ª columna y n=15 la &uacute;ltima columna.<br></body></html>");

        jLabel142.setText("<html><body>En nuestro caso, para B1, <b>n = </b><body><html>");

        jTextField62.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel143.setText("<html><body>Por ende, utilizando S1, el bloque B1 se reemplazara con el valor hayado en la coordenada <b>(m,n)</b>. Dicho valor debe ser escrito en 4 bits, o sea:<body><html> ");

        jLabel144.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel144.setText("S1(B1) = ");

        jTextField63.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel145.setText("<html><body>Siguiendo con el resto de los bloques, obtenemos: (32 bits)</body></html>");

        jLabel146.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel146.setText("S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = ");

        jTextField64.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel147.setText("<html><body><b>4)</b> A este resultado le aplico la permutaci&oacute;n P y obtengo: (32 bits)</body></html>");

        jLabel148.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel148.setText("P = ");

        jTextField65.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel149.setText("<html><body><b>5)</b> Luego, realizo un &uacute;ltimo OR-exclusivo con el valor L0 inicial (que no fue modificado), obteniendo: (32 bits)</body></html>");

        jLabel150.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel150.setText("P (+) L15 = ");

        jTextField66.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel151.setText("<html><body>Este valor obtenido, es el nuevo R16, mientras que el R15 original pasa a ser el L16. Con esta ronda concluyen las 16 rondas principales del algoritmo, dejando lugar a un paso final</body></html>");

        jButton26.setText("Resolver");
        jButton26.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton26ActionPerformed(evt);
            }
        });

        jButton27.setText("Evaluar");
        jButton27.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton27ActionPerformed(evt);
            }
        });

        jButton32.setText("Limpiar");
        jButton32.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton32ActionPerformed(evt);
            }
        });

        jButton40.setText("Guardar");
        jButton40.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton40ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
        jPanel15.setLayout(jPanel15Layout);
        jPanel15Layout.setHorizontalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel15Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel134)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel15Layout.createSequentialGroup()
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel15Layout.createSequentialGroup()
                                .addComponent(jButton32)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton40)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton27)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton26)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton25))
                            .addComponent(jLabel133, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel136, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel137, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel139, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel141, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel143, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jLabel145)
                            .addComponent(jLabel147)
                            .addComponent(jLabel149)
                            .addComponent(jLabel151, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addGroup(jPanel15Layout.createSequentialGroup()
                                .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel15Layout.createSequentialGroup()
                                        .addComponent(jLabel135)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField59, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel15Layout.createSequentialGroup()
                                        .addComponent(jLabel138)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField60, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel15Layout.createSequentialGroup()
                                        .addComponent(jLabel140, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField61, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel15Layout.createSequentialGroup()
                                        .addComponent(jLabel142, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField62, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel15Layout.createSequentialGroup()
                                        .addComponent(jLabel144)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField63, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel15Layout.createSequentialGroup()
                                        .addComponent(jLabel146)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField64, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel15Layout.createSequentialGroup()
                                        .addComponent(jLabel148)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField65, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel15Layout.createSequentialGroup()
                                        .addComponent(jLabel150)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField66, javax.swing.GroupLayout.PREFERRED_SIZE, 305, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(0, 0, Short.MAX_VALUE)))
                        .addContainerGap())
                    .addComponent(jLabel79, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        jPanel15Layout.setVerticalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel15Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel134)
                    .addGroup(jPanel15Layout.createSequentialGroup()
                        .addComponent(jLabel133)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel135)
                            .addComponent(jTextField59, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel136, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel137)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel138)
                            .addComponent(jTextField60, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel139, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel140, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField61, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel141, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel142, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField62, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel143, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel144)
                            .addComponent(jTextField63, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel145, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel146)
                            .addComponent(jTextField64, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel147, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel148)
                            .addComponent(jTextField65, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel149, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel150)
                            .addComponent(jTextField66, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel151, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel79)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton25)
                    .addComponent(jButton26)
                    .addComponent(jButton27)
                    .addComponent(jButton32)
                    .addComponent(jButton40))
                .addContainerGap(216, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Ronda 16", jPanel15);

        jPanel12.setPreferredSize(new java.awt.Dimension(1024, 1024));

        jLabel30.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel30.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jLabel31.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel31.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/pinversa.png"))); // NOI18N
        jLabel31.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jLabel32.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel32.setText("<html><body><b>3) </b>Obteni&eacute;ndose finalmente: (64 bits)</body></html>");
        jLabel32.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jButton12.setText("Volver a empezar");
        jButton12.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton12ActionPerformed(evt);
            }
        });

        jLabel45.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/general2.png"))); // NOI18N

        jLabel2.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel2.setText("C = ");

        jTextField35.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel3.setText("el cual se traduce en hexadecimal como:");

        jTextField36.setFont(new java.awt.Font("Ubuntu", 0, 12)); // NOI18N

        jLabel4.setText("Ese finalmente es el mensaje cifrado.");

        jButton10.setText("Resolver");
        jButton10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton10ActionPerformed(evt);
            }
        });

        jButton11.setText("Evaluar");
        jButton11.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton11ActionPerformed(evt);
            }
        });

        jButton17.setText("Desencriptar");
        jButton17.setEnabled(false);
        jButton17.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton17ActionPerformed(evt);
            }
        });

        jButton33.setText("Limpiar");
        jButton33.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton33ActionPerformed(evt);
            }
        });

        jButton41.setText("Guardar");
        jButton41.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton41ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
        jPanel12.setLayout(jPanel12Layout);
        jPanel12Layout.setHorizontalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel12Layout.createSequentialGroup()
                .addComponent(jLabel45)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel12Layout.createSequentialGroup()
                        .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel12Layout.createSequentialGroup()
                                .addComponent(jButton33)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton41)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton11)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton10)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton17)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton12))
                            .addComponent(jLabel30, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel32)
                            .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel12Layout.createSequentialGroup()
                                .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel31, javax.swing.GroupLayout.PREFERRED_SIZE, 581, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(jPanel12Layout.createSequentialGroup()
                                        .addComponent(jLabel3)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField36, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel12Layout.createSequentialGroup()
                                        .addComponent(jLabel2)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField35, javax.swing.GroupLayout.PREFERRED_SIZE, 530, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(0, 130, Short.MAX_VALUE)))
                        .addContainerGap())
                    .addComponent(jLabel80, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        jPanel12Layout.setVerticalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel12Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel45)
                    .addGroup(jPanel12Layout.createSequentialGroup()
                        .addComponent(jLabel30, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel31)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel32, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(jTextField35, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel3)
                            .addComponent(jTextField36, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel80)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton12)
                    .addComponent(jButton10)
                    .addComponent(jButton11)
                    .addComponent(jButton17)
                    .addComponent(jButton33)
                    .addComponent(jButton41))
                .addContainerGap(349, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Final", jPanel12);

        jLabel46.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/des/desencriptar.png"))); // NOI18N

        jLabel47.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel47.setText("<html><body>Para el caso de desencriptar, el proceso es exactamente el mismo que el de encriptar, pero usando las claves en orden inverso.<br>O sea, en la ronda 1 se usa la subclave K16, en la ronda 2 se usa la clave k15. As&iacute; sucesivamente hasta llegar a la ronda 16 donde se utiliza la subclave 1</body></html>");
        jLabel47.setVerticalAlignment(javax.swing.SwingConstants.TOP);

        jLabel48.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel48.setText("Mensaje encriptado");

        jTextField4.setText("85E813540F0AB405");
        jTextField4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField4ActionPerformed(evt);
            }
        });

        jLabel49.setText("Clave");

        jTextField5.setText("133457799BBCDFF1");

        jLabel50.setText("Mensaje desencriptado");

        jButton14.setText("Desencriptar");
        jButton14.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton14ActionPerformed(evt);
            }
        });

        jButton18.setText("Evaluar");
        jButton18.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton18ActionPerformed(evt);
            }
        });

        jButton34.setText("Limpiar");
        jButton34.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton34ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
        jPanel13.setLayout(jPanel13Layout);
        jPanel13Layout.setHorizontalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel13Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel46)
                .addGap(18, 18, 18)
                .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel47, javax.swing.GroupLayout.DEFAULT_SIZE, 1104, Short.MAX_VALUE)
                    .addGroup(jPanel13Layout.createSequentialGroup()
                        .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(jPanel13Layout.createSequentialGroup()
                                .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(jLabel48, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jLabel49, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jLabel50, javax.swing.GroupLayout.DEFAULT_SIZE, 180, Short.MAX_VALUE))
                                .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel13Layout.createSequentialGroup()
                                        .addGap(18, 18, 18)
                                        .addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel13Layout.createSequentialGroup()
                                        .addGap(18, 18, 18)
                                        .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jTextField5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel13Layout.createSequentialGroup()
                                .addComponent(jButton34)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton18)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton14, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jLabel51, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel52, javax.swing.GroupLayout.DEFAULT_SIZE, 420, Short.MAX_VALUE)
                            .addComponent(jLabel81, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel13Layout.setVerticalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel13Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel46)
                    .addGroup(jPanel13Layout.createSequentialGroup()
                        .addComponent(jLabel47, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel48)
                            .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel51))
                        .addGap(11, 11, 11)
                        .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel49)
                            .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel52))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel50)
                            .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel81)))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jButton14)
                            .addComponent(jButton18)
                            .addComponent(jButton34))))
                .addContainerGap(391, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Desencriptar", jPanel13);

        jLabel1.setFont(new java.awt.Font("Ubuntu", 1, 18)); // NOI18N
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("DES");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1359, Short.MAX_VALUE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addGap(18, 18, 18)
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 961, Short.MAX_VALUE)
                .addContainerGap())
        );
    }// </editor-fold>//GEN-END:initComponents

    private void jButton20ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton20ActionPerformed
        resolverRonda2();
    }//GEN-LAST:event_jButton20ActionPerformed

    private void resolverRonda2() {
        int[] rondasR = des.getRondasR();
        long[] rondasE = des.getRondasE();
        long[] xorFeistel = des.getRondasXorFeistel();
        int[] permFeistel = des.getRondasPermFeistel();
        long[] postSBox = des.getRondasPostSBox();
        String[] bes = new String[16];
        int i = 2;
        int j = 1;

        jTextField43.setText(des.formatBinary(Long.toBinaryString(rondasE[j]), 48, 4));
        String postXor = Long.toBinaryString(xorFeistel[j]);
        jTextField44.setText(des.formatBinary(postXor,48, 4));

        postXor = des.completarBinario(postXor, 48);
        for (int k=0;k<6;k++){
            int b = k+1;
            int pos = k*6;
            bes[k] = postXor.substring(pos, pos+6);
        }

        String stringM = bes[0].substring(0, 1) + bes[0].substring(5, 5);
        String stringN = bes[0].substring(1, 5);

        int m = Integer.parseInt(stringM, 2);
        int n = Integer.parseInt(stringN, 2);

        byte[][] s = des.getRondasS();
        byte valor = s[0][16*m + n];

        jTextField45.setText(des.completarBinario(Integer.toBinaryString(m),4));
        jTextField46.setText(des.completarBinario(Integer.toBinaryString(n),4));

        jTextField47.setText(des.completarBinario(Integer.toBinaryString(valor),4));

        jTextField48.setText(des.formatBinary(Long.toBinaryString(postSBox[j]&0xFFFFFFFFL), 32, 4));

        jTextField49.setText(des.formatBinary(Long.toBinaryString(permFeistel[j]&0xFFFFFFFFL),32, 4));
        jTextField50.setText(des.formatBinary(Long.toBinaryString(rondasR[i]&0xFFFFFFFFL), 32, 4));
        
        evaluarRonda2();        
    }
    
    private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton9ActionPerformed
        jTabbedPane1.setEnabledAt(5, true);
        jTabbedPane1.setSelectedIndex(5);
    }//GEN-LAST:event_jButton9ActionPerformed

    private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton14ActionPerformed
        String mensaje = jTextField4.getText();
        String clave = jTextField5.getText();

        // Validacion
        if (Des.validarMensaje(mensaje)) {
            jLabel51.setText("");
            if (Des.validarClave(clave)) {
                jLabel52.setText("");
                des.deencrypt(des.parseBytes(mensaje), des.parseBytes(clave));

                jTextField6.setText(des.getMsjDescifrado());

            } else {
                jLabel52.setText("La clave debe ser hexadecimal hasta 64 bits");
            }
        } else {
            jLabel51.setText("El mensaje debe ser hexadecimal hasta 64 bits");
            jLabel52.setText("");
        }
        evaluarDesencriptar();
    }//GEN-LAST:event_jButton14ActionPerformed

    private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField4ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextField4ActionPerformed

    private void jButton12ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton12ActionPerformed
        jTabbedPane1.setEnabledAt(1, false);
        jTabbedPane1.setEnabledAt(2, false);
        jTabbedPane1.setEnabledAt(3, false);
        jTabbedPane1.setEnabledAt(4, false);
        jTabbedPane1.setEnabledAt(5, false);
        jTabbedPane1.setEnabledAt(6, false);
        jTabbedPane1.setEnabledAt(7, false);

        jButton2.setEnabled(false);

        limpiarRondaInicial();
        limpiarSubclaves();
        limpiarRonda1();
        limpiarRonda2();
        limpiarRonda3();
        limpiarRonda16();
        limpiarRondaFinal();
        
        
        
        
        jTabbedPane1.setSelectedIndex(0);
    }//GEN-LAST:event_jButton12ActionPerformed

    private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed
        resolverRonda1();
    }//GEN-LAST:event_jButton7ActionPerformed

    private void resolverRonda1(){
        int[] rondasR = des.getRondasR();
        long[] rondasE = des.getRondasE();
        long[] xorFeistel = des.getRondasXorFeistel();
        int[] permFeistel = des.getRondasPermFeistel();
        long[] postSBox = des.getRondasPostSBox();
        String[] bes = new String[16];
        int i = 1;
        int j = 0;

        jTextField27.setText(des.formatBinary(Long.toBinaryString(rondasE[j]), 48, 4));
        String postXor = Long.toBinaryString(xorFeistel[j]);
        jTextField28.setText(des.formatBinary(postXor,48, 4));

        postXor = des.completarBinario(postXor, 48);
        for (int k=0;k<6;k++){
            int b = k+1;
            int pos = k*6;
            bes[k] = postXor.substring(pos, pos+6);
        }

        String stringM = bes[0].substring(0, 1) + bes[0].substring(5, 5);
        String stringN = bes[0].substring(1, 5);

        int m = Integer.parseInt(stringM, 2);
        int n = Integer.parseInt(stringN, 2);

        byte[][] s = des.getRondasS();
        byte valor = s[0][16*m + n];

        jTextField29.setText(des.completarBinario(Integer.toBinaryString(m),4));
        jTextField30.setText(des.completarBinario(Integer.toBinaryString(n),4));

        jTextField31.setText(des.completarBinario(Integer.toBinaryString(valor),4));

        jTextField32.setText(des.formatBinary(Long.toBinaryString(postSBox[j]&0xFFFFFFFFL), 32, 4));

        jTextField33.setText(des.formatBinary(Long.toBinaryString(permFeistel[j]&0xFFFFFFFFL),32, 4));
        jTextField34.setText(des.formatBinary(Long.toBinaryString(rondasR[i]&0xFFFFFFFFL), 32, 4));
        
        evaluarRonda1();
    }
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        jTabbedPane1.setEnabledAt(4, true);
        jTabbedPane1.setSelectedIndex(4);
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jButton15ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton15ActionPerformed
        
        resolverRondaInicial();
    }//GEN-LAST:event_jButton15ActionPerformed

    private void resolverRondaInicial(){
        String mensaje = jTextField2.getText();
        int[] rondasL = des.getRondasL();
        int[] rondasR = des.getRondasR();
        long rondasPc1 = des.getRondasPc1();

        // M
        jTextField23.setText(des.hexToBinary(mensaje, 64));

        // Permutacion
        jTextField24.setText(des.formatBinary(Long.toBinaryString(rondasPc1), 64, 4));

        // L0
        jTextField25.setText(des.formatBinary(Long.toBinaryString(rondasL[0]&0xFFFFFFFFL), 32, 4));
        // R0
        jTextField26.setText(des.formatBinary(Long.toBinaryString(rondasR[0]&0xFFFFFFFFL), 32, 4));
        
        evaluarRondaInicial();
    }
    
    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
        jTabbedPane1.setEnabledAt(3, true);
        jTabbedPane1.setSelectedIndex(3);
    }//GEN-LAST:event_jButton6ActionPerformed

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
              
        resolverSubclaves();
        
        //jLabel42.setText("");
    }//GEN-LAST:event_jButton3ActionPerformed

    private void resolverSubclaves(){
        jButton5.setEnabled(true);
        
        long[] subclaves = des.getSubkeys();
        long[] subclavesC = des.getSubkeysC();
        long[] subclavesD = des.getSubkeysD();
        String clave = jTextField1.getText();

        // Clave en binario
        jTextField7.setText(des.hexToBinary(clave, 64));

        // Permutacion 1
        jTextField8.setText(des.formatBinary(Long.toBinaryString(des.getSubkeysPc1()), 56, 4));

        // C0
        jTextField9.setText(des.formatBinary(Long.toBinaryString(subclavesC[0]), 28, 4));
        // D0
        jTextField10.setText(des.formatBinary(Long.toBinaryString(subclavesD[0]), 28, 4));

        // C1 C2 C3 C4
        jTextField11.setText(des.formatBinary(Long.toBinaryString(subclavesC[1]), 28, 4));
        jTextField13.setText(des.formatBinary(Long.toBinaryString(subclavesC[2]), 28, 4));
        jTextField15.setText(des.formatBinary(Long.toBinaryString(subclavesC[3]), 28, 4));
        jTextField17.setText(des.formatBinary(Long.toBinaryString(subclavesC[4]), 28, 4));

        // D1 D2 D3 D4
        jTextField12.setText(des.formatBinary(Long.toBinaryString(subclavesD[1]), 28, 4));
        jTextField14.setText(des.formatBinary(Long.toBinaryString(subclavesD[2]), 28, 4));
        jTextField16.setText(des.formatBinary(Long.toBinaryString(subclavesD[3]), 28, 4));
        jTextField18.setText(des.formatBinary(Long.toBinaryString(subclavesD[4]), 28, 4));

        // K1 K2 K3 K4
        jTextField19.setText(des.formatBinary(Long.toBinaryString(subclaves[0]), 48, 4));
        jTextField20.setText(des.formatBinary(Long.toBinaryString(subclaves[1]), 48, 4));
        jTextField21.setText(des.formatBinary(Long.toBinaryString(subclaves[2]), 48, 4));
        jTextField22.setText(des.formatBinary(Long.toBinaryString(subclaves[3]), 48, 4));
        
        evaluarSubclaves();
    }
    
    
    private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField7ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextField7ActionPerformed

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
        jTabbedPane1.setEnabledAt(2, true);
        jTabbedPane1.setSelectedIndex(2);
    }//GEN-LAST:event_jButton5ActionPerformed

    private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton13ActionPerformed
        String clave = jTextField1.getText();
        String mensaje = jTextField2.getText();

        // Validacion
        if (Des.validarMensaje(mensaje)) {
            jLabel37.setText("");
            if (Des.validarClave(clave)) {
                jLabel38.setText("");

                des.encrypt(des.parseBytes(mensaje), des.parseBytes(clave));
                
                //jTextField3.setText(des.getMsjCifrado());

                iniciar();

            } else {
                jLabel38.setText("La clave debe ser hexadecimal hasta 64 bits");
                jButton2.setEnabled(false);
            }
        } else {
            jLabel37.setText("El mensaje debe ser hexadecimal hasta 64 bits");
            jButton2.setEnabled(false);
            jLabel38.setText("");
        }
    }//GEN-LAST:event_jButton13ActionPerformed

    
    private void iniciar() {
        String subclavesLabel1 = crearLabelSubclaves1();
        String subclavesLabel2 = crearLabelSubclaves2();
        String subclavesLabel3 = crearLabelSubclaves3();
        String subclavesLabel4 = crearLabelSubclaves4();

        String rondaInicial1Label = crearLabelRondaInicial1();
        String rondaInicial2Label = crearLabelRondaInicial2();
        String rondaInicial3Label = crearLabelRondaInicial3();
        String rondaInicial4Label = crearLabelRondaInicial4();

        String rondaFinal1Label = crearLabelRondaFinal1();

        String ronda1LabelA = crearLabelRondaIa(1);
        String ronda1LabelB = crearLabelRondaIb(1);

        String ronda2LabelA = crearLabelRondaIa(2);
        String ronda2LabelB = crearLabelRondaIb(2);

        String ronda3LabelA = crearLabelRondaIa(3);
        String ronda3LabelB = crearLabelRondaIb(3);

        String ronda16LabelA = crearLabelRondaIa(16);
        String ronda16LabelB = crearLabelRondaIb(16);

        jLabel11.setText(subclavesLabel1);
        jLabel7.setText(subclavesLabel2);
        jLabel12.setText(subclavesLabel3);
        jLabel56.setText(subclavesLabel4);

        jLabel24.setText(rondaInicial1Label);
        jLabel62.setText(rondaInicial2Label);
        jLabel29.setText(rondaInicial3Label);
        jLabel66.setText(rondaInicial4Label);

        jLabel30.setText(rondaFinal1Label);
        //jLabel32.setText(rondaFinal2Label);
        //jLabel33.setText(rondaFinal3Label);

        jLabel13.setText( ronda1LabelA );
        jLabel21.setText( ronda1LabelB );

        jLabel95.setText( ronda2LabelA );
        jLabel99.setText( ronda2LabelB );

        jLabel114.setText( ronda3LabelA );
        jLabel118.setText( ronda3LabelB );

        jLabel133.setText( ronda16LabelA );
        jLabel137.setText( ronda16LabelB );

        jButton2.setEnabled(true);        
    }
    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextField1ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed

        jTabbedPane1.setEnabledAt(1, true);
        jTabbedPane1.setSelectedIndex(1);
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton22ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton22ActionPerformed
        jTabbedPane1.setEnabledAt(6, true);
        jTabbedPane1.setSelectedIndex(6);
    }//GEN-LAST:event_jButton22ActionPerformed

    private void jButton23ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton23ActionPerformed
        resolverRonda3();
    }//GEN-LAST:event_jButton23ActionPerformed

    private void resolverRonda3() {
        int[] rondasR = des.getRondasR();
        long[] rondasE = des.getRondasE();
        long[] xorFeistel = des.getRondasXorFeistel();
        int[] permFeistel = des.getRondasPermFeistel();
        long[] postSBox = des.getRondasPostSBox();
        String[] bes = new String[16];
        int i = 3;
        int j = 2;

        jTextField51.setText(des.formatBinary(Long.toBinaryString(rondasE[j]), 48, 4));
        String postXor = Long.toBinaryString(xorFeistel[j]);
        jTextField52.setText(des.formatBinary(postXor,48, 4));

        postXor = des.completarBinario(postXor, 48);
        for (int k=0;k<6;k++){
            int b = k+1;
            int pos = k*6;
            bes[k] = postXor.substring(pos, pos+6);
        }

        String stringM = bes[0].substring(0, 1) + bes[0].substring(5, 5);
        String stringN = bes[0].substring(1, 5);

        int m = Integer.parseInt(stringM, 2);
        int n = Integer.parseInt(stringN, 2);

        byte[][] s = des.getRondasS();
        byte valor = s[0][16*m + n];

        jTextField53.setText(des.completarBinario(Integer.toBinaryString(m),4));
        jTextField54.setText(des.completarBinario(Integer.toBinaryString(n),4));

        jTextField55.setText(des.completarBinario(Integer.toBinaryString(valor),4));

        jTextField56.setText(des.formatBinary(Long.toBinaryString(postSBox[j]&0xFFFFFFFFL), 32, 4));

        jTextField57.setText(des.formatBinary(Long.toBinaryString(permFeistel[j]&0xFFFFFFFFL),32, 4));
        jTextField58.setText(des.formatBinary(Long.toBinaryString(rondasR[i]&0xFFFFFFFFL), 32, 4));
        
        evaluarRonda3();
        
    }
    
    
    private void jButton25ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton25ActionPerformed
        jTabbedPane1.setEnabledAt(7, true);
        jTabbedPane1.setSelectedIndex(7);
    }//GEN-LAST:event_jButton25ActionPerformed

    private void jButton26ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton26ActionPerformed
        resolverRonda16();
    }//GEN-LAST:event_jButton26ActionPerformed

    private void resolverRonda16(){
        int[] rondasR = des.getRondasR();
        long[] rondasE = des.getRondasE();
        long[] xorFeistel = des.getRondasXorFeistel();
        int[] permFeistel = des.getRondasPermFeistel();
        long[] postSBox = des.getRondasPostSBox();
        String[] bes = new String[16];
        int i = 16;
        int j = 15;

        jTextField59.setText(des.formatBinary(Long.toBinaryString(rondasE[j]), 48, 4));
        String postXor = Long.toBinaryString(xorFeistel[j]);
        jTextField60.setText(des.formatBinary(postXor,48, 4));

        postXor = des.completarBinario(postXor, 48);
        for (int k=0;k<6;k++){
            int b = k+1;
            int pos = k*6;
            bes[k] = postXor.substring(pos, pos+6);
        }

        String stringM = bes[0].substring(0, 1) + bes[0].substring(5, 5);
        String stringN = bes[0].substring(1, 5);

        int m = Integer.parseInt(stringM, 2);
        int n = Integer.parseInt(stringN, 2);

        byte[][] s = des.getRondasS();
        byte valor = s[0][16*m + n];

        jTextField61.setText(des.completarBinario(Integer.toBinaryString(m),4));
        jTextField62.setText(des.completarBinario(Integer.toBinaryString(n),4));

        jTextField63.setText(des.completarBinario(Integer.toBinaryString(valor),4));

        jTextField64.setText(des.formatBinary(Long.toBinaryString(postSBox[j]&0xFFFFFFFFL), 32, 4));

        jTextField65.setText(des.formatBinary(Long.toBinaryString(permFeistel[j]&0xFFFFFFFFL),32, 4));
        jTextField66.setText(des.formatBinary(Long.toBinaryString(rondasR[i]&0xFFFFFFFFL), 32, 4));
        
        evaluarRonda16();        
    }
    
    private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton10ActionPerformed
        resolverFinal();
    }//GEN-LAST:event_jButton10ActionPerformed

    private void resolverFinal() {
        long fp = des.getRondasFP();

        jTextField35.setText(des.formatBinary(Long.toBinaryString(fp), 64, 4));
        jTextField36.setText(Long.toHexString(fp).toUpperCase());
        
        evaluarRondaFinal();
    }
    
    private void jButton17ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton17ActionPerformed
        jTabbedPane1.setEnabledAt(8, true);
        jTabbedPane1.setSelectedIndex(8);
    }//GEN-LAST:event_jButton17ActionPerformed

    private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField2ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextField2ActionPerformed

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
        
        evaluarSubclaves();
        
    }//GEN-LAST:event_jButton4ActionPerformed

    private void jButton19ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton19ActionPerformed
        limpiarSubclaves();
    }//GEN-LAST:event_jButton19ActionPerformed

    private void jButton16ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton16ActionPerformed
        evaluarRondaInicial();
    }//GEN-LAST:event_jButton16ActionPerformed

    private void jButton28ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton28ActionPerformed
        limpiarRondaInicial();
    }//GEN-LAST:event_jButton28ActionPerformed

    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed
        evaluarRonda1();
    }//GEN-LAST:event_jButton8ActionPerformed

    private void jButton29ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton29ActionPerformed
        limpiarRonda1();
    }//GEN-LAST:event_jButton29ActionPerformed

    private void jButton21ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton21ActionPerformed
        evaluarRonda2();
    }//GEN-LAST:event_jButton21ActionPerformed

    private void jButton30ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton30ActionPerformed
        limpiarRonda2();
    }//GEN-LAST:event_jButton30ActionPerformed

    private void jButton24ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton24ActionPerformed
        evaluarRonda3();
    }//GEN-LAST:event_jButton24ActionPerformed

    private void jButton31ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton31ActionPerformed
        limpiarRonda3();
    }//GEN-LAST:event_jButton31ActionPerformed

    private void jButton27ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton27ActionPerformed
        evaluarRonda16();
    }//GEN-LAST:event_jButton27ActionPerformed

    private void jButton32ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton32ActionPerformed
        limpiarRonda16();
    }//GEN-LAST:event_jButton32ActionPerformed

    private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton11ActionPerformed
        evaluarRondaFinal();
    }//GEN-LAST:event_jButton11ActionPerformed

    private void jButton33ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton33ActionPerformed
        limpiarRondaFinal();
    }//GEN-LAST:event_jButton33ActionPerformed

    private void jButton18ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton18ActionPerformed
        evaluarDesencriptar();
    }//GEN-LAST:event_jButton18ActionPerformed

    private void jButton34ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton34ActionPerformed
        limpiarDesencriptar();
    }//GEN-LAST:event_jButton34ActionPerformed

    private void jButton35ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton35ActionPerformed
        try {
            JFileChooser saveFile = new JFileChooser();
            saveFile.showSaveDialog(null);
            String path=saveFile.getSelectedFile().getAbsolutePath();
            String filename=saveFile.getSelectedFile().getName();
            AlgorithmStateStorage.saveDes(filename, path, this.messageToJsonPaso2(2));
        } catch (IOException ex) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NullPointerException npe) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, npe);
        }
    }//GEN-LAST:event_jButton35ActionPerformed

    private void jButton36ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton36ActionPerformed
        try {
            JFileChooser saveFile = new JFileChooser();
            saveFile.showSaveDialog(null);
            String path=saveFile.getSelectedFile().getAbsolutePath();
            String filename=saveFile.getSelectedFile().getName();
            AlgorithmStateStorage.saveDes(filename, path, this.messageToJsonPaso3(3));
        } catch (IOException ex) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NullPointerException npe) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, npe);
        }
    }//GEN-LAST:event_jButton36ActionPerformed

    private void jButton37ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton37ActionPerformed
        try {
            JFileChooser saveFile = new JFileChooser();
            saveFile.showSaveDialog(null);
            String path=saveFile.getSelectedFile().getAbsolutePath();
            String filename=saveFile.getSelectedFile().getName();
            AlgorithmStateStorage.saveDes(filename, path, this.messageToJsonPaso4(4));
        } catch (IOException ex) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NullPointerException npe) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, npe);
        }
    }//GEN-LAST:event_jButton37ActionPerformed

    private void jButton38ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton38ActionPerformed
        try {
            JFileChooser saveFile = new JFileChooser();
            saveFile.showSaveDialog(null);
            String path=saveFile.getSelectedFile().getAbsolutePath();
            String filename=saveFile.getSelectedFile().getName();
            AlgorithmStateStorage.saveDes(filename, path, this.messageToJsonPaso5(5));
        } catch (IOException ex) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NullPointerException npe) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, npe);
        }
    }//GEN-LAST:event_jButton38ActionPerformed

    private void jButton39ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton39ActionPerformed
        try {
            JFileChooser saveFile = new JFileChooser();
            saveFile.showSaveDialog(null);
            String path=saveFile.getSelectedFile().getAbsolutePath();
            String filename=saveFile.getSelectedFile().getName();
            AlgorithmStateStorage.saveDes(filename, path, this.messageToJsonPaso6(6));
        } catch (IOException ex) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NullPointerException npe) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, npe);
        }
    }//GEN-LAST:event_jButton39ActionPerformed

    private void jButton40ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton40ActionPerformed
        try {
            JFileChooser saveFile = new JFileChooser();
            saveFile.showSaveDialog(null);
            String path=saveFile.getSelectedFile().getAbsolutePath();
            String filename=saveFile.getSelectedFile().getName();
            AlgorithmStateStorage.saveDes(filename, path, this.messageToJsonPaso7(7));
        } catch (IOException ex) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NullPointerException npe) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, npe);
        }
    }//GEN-LAST:event_jButton40ActionPerformed

    private void jButton41ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton41ActionPerformed
        try {
            JFileChooser saveFile = new JFileChooser();
            saveFile.showSaveDialog(null);
            String path=saveFile.getSelectedFile().getAbsolutePath();
            String filename=saveFile.getSelectedFile().getName();
            AlgorithmStateStorage.saveDes(filename, path, this.messageToJsonPaso8(8));
        } catch (IOException ex) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NullPointerException npe) {
            Logger.getLogger(DesPanelEvaluar.class.getName()).log(Level.SEVERE, null, npe);
        }
    }//GEN-LAST:event_jButton41ActionPerformed


    
    private void evaluarDesencriptar(){
        String mensaje = jTextField4.getText();
        String clave = jTextField5.getText();

        // Validacion
        if (Des.validarMensaje(mensaje)) {
            jLabel51.setText("");
            if (Des.validarClave(clave)) {
                jLabel52.setText("");

                String mensDescifrado = jTextField6.getText();
                if (Des.validarMensaje(mensDescifrado)) {
                    jLabel81.setText("");
                    des.deencrypt(des.parseBytes(mensaje), des.parseBytes(clave));

                    if (mensDescifrado.equalsIgnoreCase(des.getMsjDescifrado())){
                        jTextField6.setBackground(Color.green);
                        jLabel81.setText("Correcto!");
                    } else {
                        jTextField6.setBackground(Color.red);
                        jLabel81.setText("Incorrecto! Intente nuevamente");
                    }                     
                    
                } else {
                    jLabel81.setText("El mensaje descifrado debe ser hexadecimal hasta 64 bits");
                    jTextField6.setBackground(Color.red);
                }

            } else {
                jLabel52.setText("La clave debe ser hexadecimal hasta 64 bits");
            }
        } else {
            jLabel51.setText("El mensaje debe ser hexadecimal hasta 64 bits");
            jLabel52.setText("");
        }
    }
    
    
    private void evaluarRondaFinal(){
        long fp = des.getRondasFP();

        boolean valido = true;
        
        // c
        String cUser = jTextField35.getText().replaceAll(" ", "");
        cUser = des.formatBinary(cUser, 64, 4);

        if (jTextField35.getText().length() > 0) {
            if (cUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(fp), 64, 4))){
                jTextField35.setBackground(Color.green);
            } else {
                jTextField35.setBackground(Color.red);
                valido = false;
            }
        } else {
            jTextField35.setBackground(Color.red);
            valido = false;
        }        
        
        // C en hexa
        String cUserHexa = jTextField36.getText().replaceAll(" ", "");
        
        if (jTextField36.getText().length() > 0 && Des.validarMensaje(cUserHexa)) {
            if (cUserHexa.equalsIgnoreCase(Long.toHexString(fp))){
                jTextField36.setBackground(Color.green);
            } else {
                jTextField36.setBackground(Color.red);
                valido = false;
            }
        } else {
            jTextField36.setBackground(Color.red);
            valido = false;
        }

        
        
        if (!valido) {
            jLabel80.setText("Revise las cuentas, hay valores incorrectos.");
            jButton17.setEnabled(false);
        } else {
            jLabel80.setText("");
            jButton17.setEnabled(true);
        }        
        
    }
    
    private void evaluarRonda1(){
        int[] rondasR = des.getRondasR();
        long[] rondasE = des.getRondasE();
        long[] xorFeistel = des.getRondasXorFeistel();
        int[] permFeistel = des.getRondasPermFeistel();
        long[] postSBox = des.getRondasPostSBox();
        String[] bes = new String[16];
        int i = 1;
        int j = 0;

        
        boolean valido = true;
        
        // E
        String permE = jTextField27.getText().replaceAll(" ", "");
        permE = des.formatBinary(permE, 48, 4);
      
        if (permE.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasE[j]), 48, 4))){
            jTextField27.setBackground(Color.green);
        } else {
            jTextField27.setBackground(Color.red);
            valido = false;
        }           
        
        
        // XOR
        String postXor = Long.toBinaryString(xorFeistel[j]);
        String xorUser = jTextField28.getText().replaceAll(" ", "");
        xorUser = des.formatBinary(xorUser, 48, 4);
      
        if (xorUser.equalsIgnoreCase(des.formatBinary(postXor, 48, 4))){
            jTextField28.setBackground(Color.green);
        } else {
            jTextField28.setBackground(Color.red);
            valido = false;
        }           
        
        postXor = des.completarBinario(postXor, 48);
        for (int k=0;k<6;k++){
            int b = k+1;
            int pos = k*6;
            bes[k] = postXor.substring(pos, pos+6);
        }

        
        
        String stringM = bes[0].substring(0, 1) + bes[0].substring(5, 5);
        String stringN = bes[0].substring(1, 5);

        int m = Integer.parseInt(stringM, 2);
        int n = Integer.parseInt(stringN, 2);

        byte[][] s = des.getRondasS();
        byte valor = s[0][16*m + n];
       

        // m
        String mUser = jTextField29.getText().replaceAll(" ", "");
        mUser = des.completarBinario(mUser, 4);

        if (jTextField29.getText().length() > 0) {
            if (mUser.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(m),4))){
                jTextField29.setBackground(Color.green);
            } else {
                jTextField29.setBackground(Color.red);
                valido = false;
            }
        } else {
            jTextField29.setBackground(Color.red);
            valido = false;
        }
            
        
        // n
        String nUser = jTextField30.getText().replaceAll(" ", "");
        nUser = des.completarBinario(nUser, 4);
      
        if (jTextField30.getText().length() > 0) {
            if (nUser.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(n),4))){
                jTextField30.setBackground(Color.green);
            } else {
                jTextField30.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField30.setBackground(Color.red);
            valido = false;
        }
      
        
        // S1
        String s1User = jTextField31.getText().replaceAll(" ", "");
        s1User = des.completarBinario(s1User, 4);
      
        if (jTextField31.getText().length() > 0) {
            if (s1User.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(valor),4))){
                jTextField31.setBackground(Color.green);
            } else {
                jTextField31.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField31.setBackground(Color.red);
            valido = false;
        }
        
        
        // S1S2S3...
        String sTotalUser = jTextField32.getText().replaceAll(" ", "");
        sTotalUser = des.formatBinary(sTotalUser, 32, 4);
      
        if (jTextField32.getText().length() > 0) {
            if (sTotalUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(postSBox[j]&0xFFFFFFFFL), 32, 4))){
                jTextField32.setBackground(Color.green);
            } else {
                jTextField32.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField32.setBackground(Color.red);
            valido = false;
        }        
    
        
        // P
        String permFeistelUser = jTextField33.getText().replaceAll(" ", "");
        permFeistelUser = des.formatBinary(permFeistelUser, 32, 4);
      
        if (jTextField33.getText().length() > 0) {
            if (permFeistelUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(permFeistel[j]&0xFFFFFFFFL),32, 4))){
                jTextField33.setBackground(Color.green);
            } else {
                jTextField33.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField33.setBackground(Color.red);
            valido = false;
        }         
        
        
        // Xor
        String xorFinal = jTextField34.getText().replaceAll(" ", "");
        xorFinal = des.formatBinary(xorFinal, 32, 4);
      
        if (jTextField34.getText().length() > 0) {
            if (xorFinal.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasR[i]&0xFFFFFFFFL), 32, 4))){
                jTextField34.setBackground(Color.green);
            } else {
                jTextField34.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField34.setBackground(Color.red);
            valido = false;
        }         
       
        if (!valido) {
            jLabel44.setText("Revise las cuentas, hay valores incorrectos.");
            jButton1.setEnabled(false);
        } else {
            jLabel44.setText("");
            jButton1.setEnabled(true);
        }
    }    
    
    
    
    private void evaluarRonda2(){
        int[] rondasR = des.getRondasR();
        long[] rondasE = des.getRondasE();
        long[] xorFeistel = des.getRondasXorFeistel();
        int[] permFeistel = des.getRondasPermFeistel();
        long[] postSBox = des.getRondasPostSBox();
        String[] bes = new String[16];
        int i = 2;
        int j = 1;

        
        boolean valido = true;
        
        // E
        String permE = jTextField43.getText().replaceAll(" ", "");
        permE = des.formatBinary(permE, 48, 4);
      
        if (permE.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasE[j]), 48, 4))){
            jTextField43.setBackground(Color.green);
        } else {
            jTextField43.setBackground(Color.red);
            valido = false;
        }           
        
        
        // XOR
        String postXor = Long.toBinaryString(xorFeistel[j]);
        String xorUser = jTextField44.getText().replaceAll(" ", "");
        xorUser = des.formatBinary(xorUser, 48, 4);
      
        if (xorUser.equalsIgnoreCase(des.formatBinary(postXor, 48, 4))){
            jTextField44.setBackground(Color.green);
        } else {
            jTextField44.setBackground(Color.red);
            valido = false;
        }           
        
        postXor = des.completarBinario(postXor, 48);
        for (int k=0;k<6;k++){
            int b = k+1;
            int pos = k*6;
            bes[k] = postXor.substring(pos, pos+6);
        }

        
        
        String stringM = bes[0].substring(0, 1) + bes[0].substring(5, 5);
        String stringN = bes[0].substring(1, 5);

        int m = Integer.parseInt(stringM, 2);
        int n = Integer.parseInt(stringN, 2);

        byte[][] s = des.getRondasS();
        byte valor = s[0][16*m + n];
       

        // m
        String mUser = jTextField45.getText().replaceAll(" ", "");
        mUser = des.completarBinario(mUser, 4);

        if (jTextField45.getText().length() > 0) {
            if (mUser.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(m),4))){
                jTextField45.setBackground(Color.green);
            } else {
                jTextField45.setBackground(Color.red);
                valido = false;
            }
        } else {
            jTextField45.setBackground(Color.red);
            valido = false;
        }
            
        
        // n
        String nUser = jTextField46.getText().replaceAll(" ", "");
        nUser = des.completarBinario(nUser, 4);
      
        if (jTextField46.getText().length() > 0) {
            if (nUser.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(n),4))){
                jTextField46.setBackground(Color.green);
            } else {
                jTextField46.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField46.setBackground(Color.red);
            valido = false;
        }
      
        
        // S1
        String s1User = jTextField47.getText().replaceAll(" ", "");
        s1User = des.completarBinario(s1User, 4);
      
        if (jTextField47.getText().length() > 0) {
            if (s1User.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(valor),4))){
                jTextField47.setBackground(Color.green);
            } else {
                jTextField47.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField47.setBackground(Color.red);
            valido = false;
        }
        
        
        // S1S2S3...
        String sTotalUser = jTextField48.getText().replaceAll(" ", "");
        sTotalUser = des.formatBinary(sTotalUser, 32, 4);
      
        if (jTextField48.getText().length() > 0) {
            if (sTotalUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(postSBox[j]&0xFFFFFFFFL), 32, 4))){
                jTextField48.setBackground(Color.green);
            } else {
                jTextField48.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField48.setBackground(Color.red);
            valido = false;
        }        
    
        
        // P
        String permFeistelUser = jTextField49.getText().replaceAll(" ", "");
        permFeistelUser = des.formatBinary(permFeistelUser, 32, 4);
      
        if (jTextField49.getText().length() > 0) {
            if (permFeistelUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(permFeistel[j]&0xFFFFFFFFL),32, 4))){
                jTextField49.setBackground(Color.green);
            } else {
                jTextField49.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField49.setBackground(Color.red);
            valido = false;
        }         
        
        
        // Xor
        String xorFinal = jTextField50.getText().replaceAll(" ", "");
        xorFinal = des.formatBinary(xorFinal, 32, 4);
      
        if (jTextField50.getText().length() > 0) {
            if (xorFinal.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasR[i]&0xFFFFFFFFL), 32, 4))){
                jTextField50.setBackground(Color.green);
            } else {
                jTextField50.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField50.setBackground(Color.red);
            valido = false;
        }         
       
        if (!valido) {
            jLabel77.setText("Revise las cuentas, hay valores incorrectos.");
            jButton9.setEnabled(false);
        } else {
            jLabel77.setText("");
            jButton9.setEnabled(true);
        }
    }
 
    
    private void evaluarRonda3(){
        int[] rondasR = des.getRondasR();
        long[] rondasE = des.getRondasE();
        long[] xorFeistel = des.getRondasXorFeistel();
        int[] permFeistel = des.getRondasPermFeistel();
        long[] postSBox = des.getRondasPostSBox();
        String[] bes = new String[16];
        int i = 3;
        int j = 2;

        
        boolean valido = true;
        
        // E
        String permE = jTextField51.getText().replaceAll(" ", "");
        permE = des.formatBinary(permE, 48, 4);
      
        if (permE.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasE[j]), 48, 4))){
            jTextField51.setBackground(Color.green);
        } else {
            jTextField51.setBackground(Color.red);
            valido = false;
        }           
        
        
        // XOR
        String postXor = Long.toBinaryString(xorFeistel[j]);
        String xorUser = jTextField52.getText().replaceAll(" ", "");
        xorUser = des.formatBinary(xorUser, 48, 4);
      
        if (xorUser.equalsIgnoreCase(des.formatBinary(postXor, 48, 4))){
            jTextField52.setBackground(Color.green);
        } else {
            jTextField52.setBackground(Color.red);
            valido = false;
        }           
        
        postXor = des.completarBinario(postXor, 48);
        for (int k=0;k<6;k++){
            int b = k+1;
            int pos = k*6;
            bes[k] = postXor.substring(pos, pos+6);
        }

        
        
        String stringM = bes[0].substring(0, 1) + bes[0].substring(5, 5);
        String stringN = bes[0].substring(1, 5);

        int m = Integer.parseInt(stringM, 2);
        int n = Integer.parseInt(stringN, 2);

        byte[][] s = des.getRondasS();
        byte valor = s[0][16*m + n];
       

        // m
        String mUser = jTextField53.getText().replaceAll(" ", "");
        mUser = des.completarBinario(mUser, 4);

        if (jTextField53.getText().length() > 0) {
            if (mUser.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(m),4))){
                jTextField53.setBackground(Color.green);
            } else {
                jTextField53.setBackground(Color.red);
                valido = false;
            }
        } else {
            jTextField53.setBackground(Color.red);
            valido = false;
        }
            
        
        // n
        String nUser = jTextField54.getText().replaceAll(" ", "");
        nUser = des.completarBinario(nUser, 4);
      
        if (jTextField54.getText().length() > 0) {
            if (nUser.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(n),4))){
                jTextField54.setBackground(Color.green);
            } else {
                jTextField54.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField54.setBackground(Color.red);
            valido = false;
        }
      
        
        // S1
        String s1User = jTextField55.getText().replaceAll(" ", "");
        s1User = des.completarBinario(s1User, 4);
      
        if (jTextField55.getText().length() > 0) {
            if (s1User.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(valor),4))){
                jTextField55.setBackground(Color.green);
            } else {
                jTextField55.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField55.setBackground(Color.red);
            valido = false;
        }
        
        
        // S1S2S3...
        String sTotalUser = jTextField56.getText().replaceAll(" ", "");
        sTotalUser = des.formatBinary(sTotalUser, 32, 4);
      
        if (jTextField56.getText().length() > 0) {
            if (sTotalUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(postSBox[j]&0xFFFFFFFFL), 32, 4))){
                jTextField56.setBackground(Color.green);
            } else {
                jTextField56.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField56.setBackground(Color.red);
            valido = false;
        }        
    
        
        // P
        String permFeistelUser = jTextField57.getText().replaceAll(" ", "");
        permFeistelUser = des.formatBinary(permFeistelUser, 32, 4);
      
        if (jTextField57.getText().length() > 0) {
            if (permFeistelUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(permFeistel[j]&0xFFFFFFFFL),32, 4))){
                jTextField57.setBackground(Color.green);
            } else {
                jTextField57.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField57.setBackground(Color.red);
            valido = false;
        }         
        
        
        // Xor
        String xorFinal = jTextField58.getText().replaceAll(" ", "");
        xorFinal = des.formatBinary(xorFinal, 32, 4);
      
        if (jTextField58.getText().length() > 0) {
            if (xorFinal.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasR[i]&0xFFFFFFFFL), 32, 4))){
                jTextField58.setBackground(Color.green);
            } else {
                jTextField58.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField58.setBackground(Color.red);
            valido = false;
        }         
       
        if (!valido) {
            jLabel78.setText("Revise las cuentas, hay valores incorrectos.");
            jButton22.setEnabled(false);
        } else {
            jLabel78.setText("");
            jButton22.setEnabled(true);
        }
    }
    
    
    private void evaluarRonda16(){
        int[] rondasR = des.getRondasR();
        long[] rondasE = des.getRondasE();
        long[] xorFeistel = des.getRondasXorFeistel();
        int[] permFeistel = des.getRondasPermFeistel();
        long[] postSBox = des.getRondasPostSBox();
        String[] bes = new String[16];
        int i = 16;
        int j = 15;

        
        boolean valido = true;
        
        // E
        String permE = jTextField59.getText().replaceAll(" ", "");
        permE = des.formatBinary(permE, 48, 4);
      
        if (permE.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasE[j]), 48, 4))){
            jTextField59.setBackground(Color.green);
        } else {
            jTextField59.setBackground(Color.red);
            valido = false;
        }           
        
        
        // XOR
        String postXor = Long.toBinaryString(xorFeistel[j]);
        String xorUser = jTextField60.getText().replaceAll(" ", "");
        xorUser = des.formatBinary(xorUser, 48, 4);
      
        if (xorUser.equalsIgnoreCase(des.formatBinary(postXor, 48, 4))){
            jTextField60.setBackground(Color.green);
        } else {
            jTextField60.setBackground(Color.red);
            valido = false;
        }           
        
        postXor = des.completarBinario(postXor, 48);
        for (int k=0;k<6;k++){
            int b = k+1;
            int pos = k*6;
            bes[k] = postXor.substring(pos, pos+6);
        }

        
        
        String stringM = bes[0].substring(0, 1) + bes[0].substring(5, 5);
        String stringN = bes[0].substring(1, 5);

        int m = Integer.parseInt(stringM, 2);
        int n = Integer.parseInt(stringN, 2);

        byte[][] s = des.getRondasS();
        byte valor = s[0][16*m + n];
       

        // m
        String mUser = jTextField61.getText().replaceAll(" ", "");
        mUser = des.completarBinario(mUser, 4);

        if (jTextField61.getText().length() > 0) {
            if (mUser.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(m),4))){
                jTextField61.setBackground(Color.green);
            } else {
                jTextField61.setBackground(Color.red);
                valido = false;
            }
        } else {
            jTextField61.setBackground(Color.red);
            valido = false;
        }
            
        
        // n
        String nUser = jTextField62.getText().replaceAll(" ", "");
        nUser = des.completarBinario(nUser, 4);
      
        if (jTextField62.getText().length() > 0) {
            if (nUser.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(n),4))){
                jTextField62.setBackground(Color.green);
            } else {
                jTextField62.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField62.setBackground(Color.red);
            valido = false;
        }
      
        
        // S1
        String s1User = jTextField63.getText().replaceAll(" ", "");
        s1User = des.completarBinario(s1User, 4);
      
        if (jTextField63.getText().length() > 0) {
            if (s1User.equalsIgnoreCase(des.completarBinario(Integer.toBinaryString(valor),4))){
                jTextField63.setBackground(Color.green);
            } else {
                jTextField63.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField63.setBackground(Color.red);
            valido = false;
        }
        
        
        // S1S2S3...
        String sTotalUser = jTextField64.getText().replaceAll(" ", "");
        sTotalUser = des.formatBinary(sTotalUser, 32, 4);
      
        if (jTextField64.getText().length() > 0) {
            if (sTotalUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(postSBox[j]&0xFFFFFFFFL), 32, 4))){
                jTextField64.setBackground(Color.green);
            } else {
                jTextField64.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField64.setBackground(Color.red);
            valido = false;
        }        
    
        
        // P
        String permFeistelUser = jTextField65.getText().replaceAll(" ", "");
        permFeistelUser = des.formatBinary(permFeistelUser, 32, 4);
      
        if (jTextField65.getText().length() > 0) {
            if (permFeistelUser.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(permFeistel[j]&0xFFFFFFFFL),32, 4))){
                jTextField65.setBackground(Color.green);
            } else {
                jTextField65.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField65.setBackground(Color.red);
            valido = false;
        }         
        
        
        // Xor
        String xorFinal = jTextField66.getText().replaceAll(" ", "");
        xorFinal = des.formatBinary(xorFinal, 32, 4);
      
        if (jTextField66.getText().length() > 0) {
            if (xorFinal.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasR[i]&0xFFFFFFFFL), 32, 4))){
                jTextField66.setBackground(Color.green);
            } else {
                jTextField66.setBackground(Color.red);
                valido = false;
            }               
        } else {
            jTextField66.setBackground(Color.red);
            valido = false;
        }         
       
        if (!valido) {
            jLabel79.setText("Revise las cuentas, hay valores incorrectos.");
            jButton25.setEnabled(false);
        } else {
            jLabel79.setText("");
            jButton25.setEnabled(true);
        }
    }

    
    
    
    
    private void evaluarRondaInicial() {
                
        String mensaje = jTextField2.getText();
        int[] rondasL = des.getRondasL();
        int[] rondasR = des.getRondasR();
        long rondasPc1 = des.getRondasPc1();

        boolean valido = true;
        
        
        // M     
        String mensajeBinario = jTextField23.getText().replaceAll(" ", "");
        mensaje = des.hexToBinary(mensaje, 64);
        
        if (mensaje.equalsIgnoreCase(des.formatBinary(mensajeBinario, 64, 4))){
            jTextField23.setBackground(Color.green);
        } else {
            jTextField23.setBackground(Color.red);
            valido = false;
        }       
        
        
        // Permutacion
        String permutacion1 = jTextField24.getText().replaceAll(" ", "");
        permutacion1 = des.formatBinary(permutacion1, 64, 4);

        if (permutacion1.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasPc1), 64, 4))){
            jTextField24.setBackground(Color.green);
        } else {
            jTextField24.setBackground(Color.red);
            valido = false;
        }   
        

        // L0  
        String l0 = jTextField25.getText().replaceAll(" ", "");
        l0 = des.formatBinary(l0, 32, 4);
     
        if (l0.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasL[0]&0xFFFFFFFFL), 32, 4))){
            jTextField25.setBackground(Color.green);
        } else {
            jTextField25.setBackground(Color.red);
            valido = false;
        }
        
        
        // R0     
        String r0 = jTextField26.getText().replaceAll(" ", "");
        r0 = des.formatBinary(r0, 32, 4);
     
        if (r0.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(rondasR[0]&0xFFFFFFFFL), 32, 4))){
            jTextField26.setBackground(Color.green);
        } else {
            jTextField26.setBackground(Color.red);
            valido = false;
        }
        
        if (!valido) {
            jLabel43.setText("Revise las cuentas, hay valores incorrectos.");
            jButton6.setEnabled(false);
        } else {
            jLabel43.setText("");
            jButton6.setEnabled(true);
        }        
        
        
    }
    
    private void evaluarSubclaves() {
        long[] subclaves = des.getSubkeys();
        long[] subclavesC = des.getSubkeysC();
        long[] subclavesD = des.getSubkeysD();
        long subclavesPc1 = des.getSubkeysPc1();
        String clave = jTextField1.getText();

        boolean valido = true;
        // Clave binario
        String claveBinario = jTextField7.getText().replaceAll(" ", "");
        claveBinario = des.formatBinary(claveBinario, 64, 4);
        
        if (claveBinario.equalsIgnoreCase(des.hexToBinary(clave, 64))){
            jTextField7.setBackground(Color.green);
        } else {
            jTextField7.setBackground(Color.red);
            valido = false;
        }

        
        // Permutacion 1
        String permutacion1 = jTextField8.getText().replaceAll(" ", "");
        permutacion1 = des.formatBinary(permutacion1, 56, 4);

        
        
        if (permutacion1.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesPc1), 56, 4))){
            jTextField8.setBackground(Color.green);
        } else {
            jTextField8.setBackground(Color.red);
            valido = false;
        }

        // C0
        String c0 = jTextField9.getText().replaceAll(" ", "");
        c0 = des.formatBinary(c0, 28, 4);

        if (c0.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesC[0]), 28, 4))){
            jTextField9.setBackground(Color.green);
        } else {
            jTextField9.setBackground(Color.red);
            valido = false;
        }
        
        // D0
        String d0 = jTextField10.getText().replaceAll(" ", "");
        d0 = des.formatBinary(d0, 28, 4);
        
        if (d0.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesD[0]), 28, 4))){
            jTextField10.setBackground(Color.green);
        } else {
            jTextField10.setBackground(Color.red);
            valido = false;            
        }
        

        // C1 C2 C3 C4
        String c1 = jTextField11.getText().replaceAll(" ", "");
        c1 = des.formatBinary(c1, 28, 4);
        String c2 = jTextField13.getText().replaceAll(" ", "");
        c2 = des.formatBinary(c2, 28, 4);
        String c3 = jTextField15.getText().replaceAll(" ", "");
        c3 = des.formatBinary(c3, 28, 4);
        String c4 = jTextField17.getText().replaceAll(" ", "");
        c4 = des.formatBinary(c4, 28, 4);
        
        if (c1.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesC[1]), 28, 4))){
            jTextField11.setBackground(Color.green);
        } else {
            jTextField11.setBackground(Color.red);
            valido = false;
        }
        
        if (c2.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesC[2]), 28, 4))){
            jTextField13.setBackground(Color.green);
        } else {
            jTextField13.setBackground(Color.red);
            valido = false;
        }
        
        if (c3.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesC[3]), 28, 4))){
            jTextField15.setBackground(Color.green);
        } else {
            jTextField15.setBackground(Color.red);
            valido = false;
        }
        
        if (c4.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesC[4]), 28, 4))){
            jTextField17.setBackground(Color.green);
        } else {
            jTextField17.setBackground(Color.red);
            valido = false;
        }
        
        
        // D1 D2 D3 D4
        String d1 = jTextField12.getText().replaceAll(" ", "");
        d1 = des.formatBinary(d1, 28, 4);
        String d2 = jTextField14.getText().replaceAll(" ", "");
        d2 = des.formatBinary(d2, 28, 4);
        String d3 = jTextField16.getText().replaceAll(" ", "");
        d3 = des.formatBinary(d3, 28, 4);
        String d4 = jTextField18.getText().replaceAll(" ", "");
        d4 = des.formatBinary(d4, 28, 4);
        
        if (d1.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesD[1]), 28, 4))){
            jTextField12.setBackground(Color.green);
        } else {
            jTextField12.setBackground(Color.red);
            valido = false;
        }
        
        if (d2.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesD[2]), 28, 4))){
            jTextField14.setBackground(Color.green);
        } else {
            jTextField14.setBackground(Color.red);
            valido = false;
        }
        
        if (d3.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesD[3]), 28, 4))){
            jTextField16.setBackground(Color.green);
        } else {
            jTextField16.setBackground(Color.red);
            valido = false;
        }
        
        if (d4.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclavesD[4]), 28, 4))){
            jTextField18.setBackground(Color.green);
        } else {
            jTextField18.setBackground(Color.red);
            valido = false;
        }
        
        // K1 K2 K3 K4
        String k1 = jTextField19.getText().replaceAll(" ", "");
        k1 = des.formatBinary(k1, 28, 4);
        String k2 = jTextField20.getText().replaceAll(" ", "");
        k2 = des.formatBinary(k2, 28, 4);
        String k3 = jTextField21.getText().replaceAll(" ", "");
        k3 = des.formatBinary(k3, 28, 4);
        String k4 = jTextField22.getText().replaceAll(" ", "");
        k4 = des.formatBinary(k4, 28, 4);
        if (k1.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclaves[0]), 48, 4))){
            jTextField19.setBackground(Color.green);
        } else {
            jTextField19.setBackground(Color.red);
            valido = false;
        }
        
        if (k2.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclaves[1]), 48, 4))){
            jTextField20.setBackground(Color.green);
        } else {
            jTextField20.setBackground(Color.red);
            valido = false;
        }
        
        if (k3.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclaves[2]), 48, 4))){
            jTextField21.setBackground(Color.green);
        } else {
            jTextField21.setBackground(Color.red);
            valido = false;
        }
        
        if (k4.equalsIgnoreCase(des.formatBinary(Long.toBinaryString(subclaves[3]), 48, 4))){
            jTextField22.setBackground(Color.green);
        } else {
            jTextField22.setBackground(Color.red);
            valido = false;
        }        

        if (!valido) {
            jLabel42.setText("Revise las cuentas, hay valores incorrectos.");
            jButton5.setEnabled(false);
        } else {
            jLabel42.setText("");
            jButton5.setEnabled(true);
        }
    }
    private String crearLabelSubclaves1() {
        
        String clave = jTextField1.getText();
        String label = "<html><body><b>1)</b> Tomando como ejemplo nuestra clave ";
        label += "<b>" + clave + "</b>";
        label += ", la pasamos a binario, obteniendo (64 bits):<br></body></html>";
        
        return label;
    }    
    
    private String crearLabelSubclaves2() {
       
        String label = "<html><body>";      
        label += "<b>2)</b> Aplicamos la Permutaci&oacute;n 1, surgiendo los siguientes 56 bits ";
        label += "los cuales separo en 28 bits mas significativos (C0) y 28 bits menos significativos (D0): <br>";

        label += "</body></html>";
        
        return label;
    }      
    
    private String crearLabelSubclaves3() {

        String label = "<html><body>";      
        
        label += "<b>3)</b> A modo de ejemplo, solamente calcularemos los 4 primeros valores tanto de Ci como de Di.<br>";
        label += "Utilizando la tabla de rotaciones, obtenemos los siguientes <b>Ci</b> y <b>Di</b>: (28 bits)<br><br>";
    
        label += "</body></html>";
        
        return label;
    }      

    
    
    private String crearLabelSubclaves4() {
        
        String clave = jTextField1.getText();
        String label = "<html><body>";      
        
        label += "<b>4)</b> Finalmente, concatenando cada <b>Ci</b> con <b>Di</b> y aplicando la Permutaci&oacute;n 2, ";
        label += "obtenemos las 16 subclaves <b>Ki (por simplicidad solamente calculamos las 4 primeras)</b>: (48 bits)<br><br>";
        label += "</body></html>";

        return label;
    }      
    
    
    
    private String crearLabelRondaInicial1() {
        String label = "<html><body><b>1)</b> Ahora vamos a trabajar sobre el mensaje en si mismo. <br>";
        label += "Pasamos los 16 bytes hexadecimales del mensaje original a binario, obteniendo (64 bits)<br>";
        label += "</body></html>";

        return label;
    }    
    
    private String crearLabelRondaInicial2() {
        
        String label = "<html><body>";
        label += "A continuaci&oacute;n, se realizar&aacute; una permutaci&oacute;n inicial (64 bits)";
        label += "con la siguiente tabla:<br></body></html>";

        return label;
    }    
    
    private String crearLabelRondaInicial3() {
        
        String label = "<html><body>";
        label += "Al resultado, se lo divide en dos mitades de 32 bits cada una, siendo ";
        label += "L(0) el bloque que contiene los 32 bits de mayor peso y R(0) el resto: <br>";

        label += "</body></html>";
        return label;
    }
    
     private String crearLabelRondaInicial4() {
        
        String label = "<html><body>";
      
        label += "<b>2)</b> Luego se inician las 16 rondas del algoritmo. En los pr&oacute;ximos pasos calcularemos cada una de ellas.";
        label += "</body></html> ";

        label += "</body></html>";
        return label;
    }
     
     
    private String crearLabelRondaFinal1() {
        int[] rondasL = des.getRondasL();
        int[] rondasR = des.getRondasR();
        long rl = (rondasR[16]&0xFFFFFFFFL)<<32 | (rondasL[16]&0xFFFFFFFFL);
        
        
        String label = "<html><body><b>1) </b>Finalmente llegamos al &uacute;ltimo paso del algoritmo<br>";
        label += "Teniendo como bloques finales:<br>";
        label += "<b>L16 = " + des.formatBinary(Long.toBinaryString(rondasL[16]&0xFFFFFFFFL), 32, 4) + "</b><br> ";
        label += "<b>R16 = " + des.formatBinary(Long.toBinaryString(rondasR[16]&0xFFFFFFFFL), 32, 4) + "</b><br><br>";
        label += "los concatenamos de manera invertida, o sea R16+L16, quedando:<br>";
        label += "<b>R16+L16 = " + des.formatBinary(Long.toBinaryString(rl), 64, 4) + "</b><br><br>";
        label += "<b>2) </b>A este nuevo bloque de 64 bits se le aplica la permutaci&oacute;n inversa:<br> </body></html>";
        
        return label;
    }
    


    private String crearLabelRondaIa(int i) {
        int[] rondasL = des.getRondasL();
        int[] rondasR = des.getRondasR();
        int j = i-1;

        String label = "<html><body><b>1) </b>Partiendo de los bloques iniciales:<br> ";
        label += "<b>L"+j+" = " + des.formatBinary(Long.toBinaryString(rondasL[j]&0xFFFFFFFFL), 32, 4) + "</b> y ";
        label += "<b>R"+j+" = " + des.formatBinary(Long.toBinaryString(rondasR[j]&0xFFFFFFFFL), 32, 4) + "</b><br><br>";
        label += "Aplico la expansi&oacute;n E al bloque R"+j+", obteniendo: (48 bits)<br>";

        label += "</body></html>";        
        return label;
    }

    private String crearLabelRondaIb(int i) {
        long[] subclaves = des.getSubkeys();

        int j = i-1;

        String label = "<html><body><b>K("+i+") = " + des.formatBinary(Long.toBinaryString(subclaves[j]),48, 4) + "</b><br> ";
        label += "Quedando finalmente: (48 bits)<br> ";
        label += "</body></html>";        

        return label;
    }
        
    private void limpiarSubclaves (){
        jTextField7.setBackground(Color.white);
        jTextField8.setBackground(Color.white);
        jTextField9.setBackground(Color.white);
        jTextField10.setBackground(Color.white);
        jTextField11.setBackground(Color.white);
        jTextField12.setBackground(Color.white);
        jTextField13.setBackground(Color.white);
        jTextField14.setBackground(Color.white);
        jTextField15.setBackground(Color.white);
        jTextField16.setBackground(Color.white);
        jTextField17.setBackground(Color.white);
        jTextField18.setBackground(Color.white);
        jTextField19.setBackground(Color.white);
        jTextField20.setBackground(Color.white);
        jTextField21.setBackground(Color.white);
        jTextField22.setBackground(Color.white);
        
        jTextField7.setText("");
        jTextField8.setText("");
        jTextField9.setText("");
        jTextField10.setText("");
        jTextField11.setText("");
        jTextField12.setText("");
        jTextField13.setText("");
        jTextField14.setText("");
        jTextField15.setText("");
        jTextField16.setText("");
        jTextField17.setText("");
        jTextField18.setText("");
        jTextField19.setText("");
        jTextField20.setText("");
        jTextField21.setText("");
        jTextField22.setText("");
        jLabel42.setText("");
        
        jButton5.setEnabled(false);
}
        
    private void limpiarRondaInicial (){
        jTextField23.setBackground(Color.white);
        jTextField24.setBackground(Color.white);
        jTextField25.setBackground(Color.white);
        jTextField26.setBackground(Color.white);
        
        jTextField23.setText("");
        jTextField24.setText("");
        jTextField25.setText("");
        jTextField26.setText("");
        jLabel43.setText("");
        
        jButton6.setEnabled(false);
}
    
    private void limpiarRonda1 (){
        jTextField27.setBackground(Color.white);
        jTextField28.setBackground(Color.white);
        jTextField29.setBackground(Color.white);
        jTextField30.setBackground(Color.white);
        jTextField31.setBackground(Color.white);
        jTextField32.setBackground(Color.white);
        jTextField33.setBackground(Color.white);
        jTextField34.setBackground(Color.white);
        
        jTextField27.setText("");
        jTextField28.setText("");
        jTextField29.setText("");
        jTextField30.setText("");
        jTextField31.setText("");
        jTextField32.setText("");
        jTextField33.setText("");
        jTextField34.setText("");
        jLabel44.setText("");
        
        jButton1.setEnabled(false);
}     
    
    
    private void limpiarRonda2 (){
        jTextField43.setBackground(Color.white);
        jTextField44.setBackground(Color.white);
        jTextField45.setBackground(Color.white);
        jTextField46.setBackground(Color.white);
        jTextField47.setBackground(Color.white);
        jTextField48.setBackground(Color.white);
        jTextField49.setBackground(Color.white);
        jTextField50.setBackground(Color.white);
        
        jTextField43.setText("");
        jTextField44.setText("");
        jTextField45.setText("");
        jTextField46.setText("");
        jTextField47.setText("");
        jTextField48.setText("");
        jTextField49.setText("");
        jTextField50.setText("");
        jLabel77.setText("");
        
        jButton9.setEnabled(false);
}     
    

    private void limpiarRonda3 (){
        jTextField51.setBackground(Color.white);
        jTextField52.setBackground(Color.white);
        jTextField53.setBackground(Color.white);
        jTextField54.setBackground(Color.white);
        jTextField55.setBackground(Color.white);
        jTextField56.setBackground(Color.white);
        jTextField57.setBackground(Color.white);
        jTextField58.setBackground(Color.white);
        
        jTextField51.setText("");
        jTextField52.setText("");
        jTextField53.setText("");
        jTextField54.setText("");
        jTextField55.setText("");
        jTextField56.setText("");
        jTextField57.setText("");
        jTextField58.setText("");
        jLabel78.setText("");
        
        jButton22.setEnabled(false);
}    
   
    
    private void limpiarRonda16 (){
        jTextField59.setBackground(Color.white);
        jTextField60.setBackground(Color.white);
        jTextField61.setBackground(Color.white);
        jTextField62.setBackground(Color.white);
        jTextField63.setBackground(Color.white);
        jTextField64.setBackground(Color.white);
        jTextField65.setBackground(Color.white);
        jTextField66.setBackground(Color.white);
        
        jTextField59.setText("");
        jTextField60.setText("");
        jTextField61.setText("");
        jTextField62.setText("");
        jTextField63.setText("");
        jTextField64.setText("");
        jTextField65.setText("");
        jTextField66.setText("");
        jLabel79.setText("");
        
        jButton25.setEnabled(false);
}      
    
    private void limpiarRondaFinal (){
        jTextField35.setBackground(Color.white);
        jTextField36.setBackground(Color.white);

        
        jTextField35.setText("");
        jTextField36.setText("");

        jLabel80.setText("");
}    
    
    
    private void limpiarDesencriptar() {
        jTextField4.setBackground(Color.white);
        jTextField5.setBackground(Color.white);
        jTextField6.setBackground(Color.white);

        
        jTextField4.setText("");
        jTextField5.setText("");
        jTextField6.setText("");
        
        jLabel51.setText("");
        jLabel52.setText("");
        jLabel81.setText("");
    }
   
     public DesDTO messageToJsonPaso2(int step){
        DesDTO desDTO = new DesDTO();
        desDTO.setCurrentStep(step);
        desDTO.setMessage(jTextField2.getText());
        desDTO.setKey(jTextField1.getText());

        desDTO.setKBinario(jTextField7.getText());
        desDTO.setPk(jTextField8.getText());
        desDTO.setC0(jTextField9.getText());
        desDTO.setD0(jTextField10.getText());
        desDTO.setC1(jTextField11.getText());
        desDTO.setD1(jTextField12.getText());
        desDTO.setC2(jTextField13.getText());
        desDTO.setD2(jTextField14.getText());
        desDTO.setC3(jTextField15.getText());
        desDTO.setD3(jTextField16.getText());
        desDTO.setC4(jTextField17.getText());
        desDTO.setD4(jTextField18.getText());
        desDTO.setK1(jTextField19.getText());
        desDTO.setK2(jTextField20.getText());
        desDTO.setK3(jTextField21.getText());
        desDTO.setK4(jTextField22.getText());


        return desDTO;
    }  
   
     
     public DesDTO messageToJsonPaso3(int step){
        DesDTO desDTO = new DesDTO();
        desDTO.setCurrentStep(step);
        desDTO.setMessage(jTextField2.getText());
        desDTO.setKey(jTextField1.getText());

        desDTO.setM(jTextField23.getText());
        desDTO.setP1(jTextField24.getText());
        desDTO.setL0(jTextField25.getText());
        desDTO.setR0(jTextField26.getText());

        return desDTO;
    }       
     

     public DesDTO messageToJsonPaso4(int step){
        DesDTO desDTO = new DesDTO();
        desDTO.setCurrentStep(step);
        desDTO.setMessage(jTextField2.getText());
        desDTO.setKey(jTextField1.getText());

        desDTO.setEr0(jTextField27.getText());
        desDTO.setK1Xer0(jTextField28.getText());
        desDTO.setM1(jTextField29.getText());
        desDTO.setN1(jTextField30.getText());
        desDTO.setS1b1(jTextField31.getText());
        desDTO.setsTotal1(jTextField32.getText());
        desDTO.setPostP1(jTextField33.getText());
        desDTO.setpXl0(jTextField34.getText());

        return desDTO;
    }      
     
   
     public DesDTO messageToJsonPaso5(int step){
        DesDTO desDTO = new DesDTO();
        desDTO.setCurrentStep(step);
        desDTO.setMessage(jTextField2.getText());
        desDTO.setKey(jTextField1.getText());

        desDTO.setEr1(jTextField43.getText());
        desDTO.setK2Xer1(jTextField44.getText());
        desDTO.setM2(jTextField45.getText());
        desDTO.setN2(jTextField46.getText());
        desDTO.setS2b2(jTextField47.getText());
        desDTO.setsTotal2(jTextField48.getText());
        desDTO.setPostP2(jTextField49.getText());
        desDTO.setpXl1(jTextField50.getText());

        return desDTO;
    }   
       
     public DesDTO messageToJsonPaso6(int step){
        DesDTO desDTO = new DesDTO();
        desDTO.setCurrentStep(step);
        desDTO.setMessage(jTextField2.getText());
        desDTO.setKey(jTextField1.getText());

        desDTO.setEr2(jTextField51.getText());
        desDTO.setK3Xer2(jTextField52.getText());
        desDTO.setM3(jTextField53.getText());
        desDTO.setN3(jTextField54.getText());
        desDTO.setS3b3(jTextField55.getText());
        desDTO.setsTotal3(jTextField56.getText());
        desDTO.setPostP3(jTextField57.getText());
        desDTO.setpXl2(jTextField58.getText());

        return desDTO;
    }   
     
   
     public DesDTO messageToJsonPaso7(int step){
        DesDTO desDTO = new DesDTO();
        desDTO.setCurrentStep(step);
        desDTO.setMessage(jTextField2.getText());
        desDTO.setKey(jTextField1.getText());

        desDTO.setEr15(jTextField59.getText());
        desDTO.setK16Xer15(jTextField60.getText());
        desDTO.setM16(jTextField61.getText());
        desDTO.setN16(jTextField62.getText());
        desDTO.setS16b16(jTextField63.getText());
        desDTO.setsTotal16(jTextField64.getText());
        desDTO.setPostP16(jTextField65.getText());
        desDTO.setpXl15(jTextField66.getText());

        return desDTO;
    }      
    
     
     public DesDTO messageToJsonPaso8(int step){
        DesDTO desDTO = new DesDTO();
        desDTO.setCurrentStep(step);
        desDTO.setMessage(jTextField2.getText());
        desDTO.setKey(jTextField1.getText());

        desDTO.setcFinal(jTextField35.getText());
        desDTO.setCipherMessage(jTextField36.getText());

        return desDTO;
    }  
     
     
     
    private void activarPaso2(DesDTO desDTO) {
                
        this.jTextField7.setText(desDTO.getKBinario());
        this.jTextField8.setText(desDTO.getPk());
        this.jTextField9.setText(desDTO.getC0());
        this.jTextField10.setText(desDTO.getD0());
        this.jTextField11.setText(desDTO.getC1());
        this.jTextField12.setText(desDTO.getD1());
        this.jTextField13.setText(desDTO.getC2());
        this.jTextField14.setText(desDTO.getD2());
        this.jTextField15.setText(desDTO.getC3());
        this.jTextField16.setText(desDTO.getD3());
        this.jTextField17.setText(desDTO.getC4());
        this.jTextField18.setText(desDTO.getD4());

        this.jTextField19.setText(desDTO.getK1());
        this.jTextField20.setText(desDTO.getK2());
        this.jTextField21.setText(desDTO.getK3());
        this.jTextField22.setText(desDTO.getK4());        
    }
     
    
    private void activarPaso3(DesDTO desDTO) {
                
        this.jTextField23.setText(desDTO.getM());
        this.jTextField24.setText(desDTO.getP1());
        this.jTextField25.setText(desDTO.getL0());
        this.jTextField26.setText(desDTO.getR0());
     
    }    
    
    
    private void activarPaso4(DesDTO desDTO) {
                
        this.jTextField27.setText(desDTO.getEr0());
        this.jTextField28.setText(desDTO.getK1Xer0());
        this.jTextField29.setText(desDTO.getM1());
        this.jTextField30.setText(desDTO.getN1());
        this.jTextField31.setText(desDTO.getS1b1());
        this.jTextField32.setText(desDTO.getsTotal1());
        this.jTextField33.setText(desDTO.getPostP1());
        this.jTextField34.setText(desDTO.getpXl0());

    }    

    private void activarPaso5(DesDTO desDTO) {
                
        this.jTextField43.setText(desDTO.getEr1());
        this.jTextField44.setText(desDTO.getK2Xer1());
        this.jTextField45.setText(desDTO.getM2());
        this.jTextField46.setText(desDTO.getN2());
        this.jTextField47.setText(desDTO.getS2b2());
        this.jTextField48.setText(desDTO.getsTotal2());
        this.jTextField49.setText(desDTO.getPostP2());
        this.jTextField50.setText(desDTO.getpXl1());

    }    
    

    private void activarPaso6(DesDTO desDTO) {
                
        this.jTextField51.setText(desDTO.getEr2());
        this.jTextField52.setText(desDTO.getK3Xer2());
        this.jTextField53.setText(desDTO.getM3());
        this.jTextField54.setText(desDTO.getN3());
        this.jTextField55.setText(desDTO.getS3b3());
        this.jTextField56.setText(desDTO.getsTotal3());
        this.jTextField57.setText(desDTO.getPostP3());
        this.jTextField58.setText(desDTO.getpXl2());
    }
    
    
    private void activarPaso7(DesDTO desDTO) {
                
        this.jTextField59.setText(desDTO.getEr15());
        this.jTextField60.setText(desDTO.getK16Xer15());
        this.jTextField61.setText(desDTO.getM16());
        this.jTextField62.setText(desDTO.getN16());
        this.jTextField63.setText(desDTO.getS16b16());
        this.jTextField64.setText(desDTO.getsTotal16());
        this.jTextField65.setText(desDTO.getPostP16());
        this.jTextField66.setText(desDTO.getpXl15());
    }        

    
    private void activarPaso8(DesDTO desDTO) {
                
        this.jTextField35.setText(desDTO.getcFinal());
        this.jTextField36.setText(desDTO.getCipherMessage());
    }        
    
    
    void load(DesDTO desDTO) {
        
        String clave = desDTO.getKey();
        String mensaje = desDTO.getMessage();
       
        this.jTextField2.setText(mensaje);
        this.jTextField1.setText(clave);        
        
        des.encrypt(des.parseBytes(mensaje), des.parseBytes(clave));
        
        iniciar();
        
        int step = desDTO.getCurrentStep();
        
        switch(step){
            case 2 : 

                activarPaso2(desDTO);
                
                jTabbedPane1.setEnabledAt(1, true);
                jTabbedPane1.setSelectedIndex(1);
                break;
            case 3:    
                resolverSubclaves();
                activarPaso3(desDTO);
                
                jTabbedPane1.setEnabledAt(1, true);
                jTabbedPane1.setEnabledAt(2, true);
                jTabbedPane1.setSelectedIndex(2);
                break;
            case 4:
                resolverSubclaves();
                resolverRondaInicial();
                activarPaso4(desDTO);
                
                jTabbedPane1.setEnabledAt(1, true);
                jTabbedPane1.setEnabledAt(2, true);
                jTabbedPane1.setEnabledAt(3, true);
                
                jTabbedPane1.setSelectedIndex(3);
                break;
            case 5:
                resolverSubclaves();
                resolverRondaInicial();
                resolverRonda1();
                activarPaso5(desDTO);
                
                jTabbedPane1.setEnabledAt(1, true);
                jTabbedPane1.setEnabledAt(2, true);
                jTabbedPane1.setEnabledAt(3, true);
                jTabbedPane1.setEnabledAt(4, true);
                
                jTabbedPane1.setSelectedIndex(4);
                break;
            case 6:
                resolverSubclaves();
                resolverRondaInicial();
                resolverRonda1();
                resolverRonda2();
                activarPaso6(desDTO);
                
                jTabbedPane1.setEnabledAt(1, true);
                jTabbedPane1.setEnabledAt(2, true);
                jTabbedPane1.setEnabledAt(3, true);
                jTabbedPane1.setEnabledAt(4, true);
                jTabbedPane1.setEnabledAt(5, true);
                
                jTabbedPane1.setSelectedIndex(5);
                break;
            case 7:
                resolverSubclaves();
                resolverRondaInicial();
                resolverRonda1();
                resolverRonda2();
                resolverRonda3();
                activarPaso7(desDTO);
                
                jTabbedPane1.setEnabledAt(1, true);
                jTabbedPane1.setEnabledAt(2, true);
                jTabbedPane1.setEnabledAt(3, true);
                jTabbedPane1.setEnabledAt(4, true);
                jTabbedPane1.setEnabledAt(5, true);
                jTabbedPane1.setEnabledAt(6, true);
                
                jTabbedPane1.setSelectedIndex(6);
                break;
            case 8:
                resolverSubclaves();
                resolverRondaInicial();
                resolverRonda1();
                resolverRonda2();
                resolverRonda3();
                resolverRonda16();
                activarPaso8(desDTO);
                
                jTabbedPane1.setEnabledAt(1, true);
                jTabbedPane1.setEnabledAt(2, true);
                jTabbedPane1.setEnabledAt(3, true);
                jTabbedPane1.setEnabledAt(4, true);
                jTabbedPane1.setEnabledAt(5, true);
                jTabbedPane1.setEnabledAt(6, true);
                jTabbedPane1.setEnabledAt(7, true);
                
                jTabbedPane1.setSelectedIndex(7);
                break;                
            default:break;
        }
        
    }
     
     
     
     
     
     
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton11;
    private javax.swing.JButton jButton12;
    private javax.swing.JButton jButton13;
    private javax.swing.JButton jButton14;
    private javax.swing.JButton jButton15;
    private javax.swing.JButton jButton16;
    private javax.swing.JButton jButton17;
    private javax.swing.JButton jButton18;
    private javax.swing.JButton jButton19;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton20;
    private javax.swing.JButton jButton21;
    private javax.swing.JButton jButton22;
    private javax.swing.JButton jButton23;
    private javax.swing.JButton jButton24;
    private javax.swing.JButton jButton25;
    private javax.swing.JButton jButton26;
    private javax.swing.JButton jButton27;
    private javax.swing.JButton jButton28;
    private javax.swing.JButton jButton29;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton30;
    private javax.swing.JButton jButton31;
    private javax.swing.JButton jButton32;
    private javax.swing.JButton jButton33;
    private javax.swing.JButton jButton34;
    private javax.swing.JButton jButton35;
    private javax.swing.JButton jButton36;
    private javax.swing.JButton jButton37;
    private javax.swing.JButton jButton38;
    private javax.swing.JButton jButton39;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton40;
    private javax.swing.JButton jButton41;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel100;
    private javax.swing.JLabel jLabel101;
    private javax.swing.JLabel jLabel102;
    private javax.swing.JLabel jLabel103;
    private javax.swing.JLabel jLabel104;
    private javax.swing.JLabel jLabel105;
    private javax.swing.JLabel jLabel106;
    private javax.swing.JLabel jLabel107;
    private javax.swing.JLabel jLabel108;
    private javax.swing.JLabel jLabel109;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel110;
    private javax.swing.JLabel jLabel111;
    private javax.swing.JLabel jLabel112;
    private javax.swing.JLabel jLabel113;
    private javax.swing.JLabel jLabel114;
    private javax.swing.JLabel jLabel115;
    private javax.swing.JLabel jLabel116;
    private javax.swing.JLabel jLabel117;
    private javax.swing.JLabel jLabel118;
    private javax.swing.JLabel jLabel119;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel120;
    private javax.swing.JLabel jLabel121;
    private javax.swing.JLabel jLabel122;
    private javax.swing.JLabel jLabel123;
    private javax.swing.JLabel jLabel124;
    private javax.swing.JLabel jLabel125;
    private javax.swing.JLabel jLabel126;
    private javax.swing.JLabel jLabel127;
    private javax.swing.JLabel jLabel128;
    private javax.swing.JLabel jLabel129;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel130;
    private javax.swing.JLabel jLabel131;
    private javax.swing.JLabel jLabel132;
    private javax.swing.JLabel jLabel133;
    private javax.swing.JLabel jLabel134;
    private javax.swing.JLabel jLabel135;
    private javax.swing.JLabel jLabel136;
    private javax.swing.JLabel jLabel137;
    private javax.swing.JLabel jLabel138;
    private javax.swing.JLabel jLabel139;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel140;
    private javax.swing.JLabel jLabel141;
    private javax.swing.JLabel jLabel142;
    private javax.swing.JLabel jLabel143;
    private javax.swing.JLabel jLabel144;
    private javax.swing.JLabel jLabel145;
    private javax.swing.JLabel jLabel146;
    private javax.swing.JLabel jLabel147;
    private javax.swing.JLabel jLabel148;
    private javax.swing.JLabel jLabel149;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel150;
    private javax.swing.JLabel jLabel151;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel34;
    private javax.swing.JLabel jLabel35;
    private javax.swing.JLabel jLabel36;
    private javax.swing.JLabel jLabel37;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel39;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel40;
    private javax.swing.JLabel jLabel41;
    private javax.swing.JLabel jLabel42;
    private javax.swing.JLabel jLabel43;
    private javax.swing.JLabel jLabel44;
    private javax.swing.JLabel jLabel45;
    private javax.swing.JLabel jLabel46;
    private javax.swing.JLabel jLabel47;
    private javax.swing.JLabel jLabel48;
    private javax.swing.JLabel jLabel49;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel50;
    private javax.swing.JLabel jLabel51;
    private javax.swing.JLabel jLabel52;
    private javax.swing.JLabel jLabel53;
    private javax.swing.JLabel jLabel54;
    private javax.swing.JLabel jLabel55;
    private javax.swing.JLabel jLabel56;
    private javax.swing.JLabel jLabel57;
    private javax.swing.JLabel jLabel58;
    private javax.swing.JLabel jLabel59;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel60;
    private javax.swing.JLabel jLabel61;
    private javax.swing.JLabel jLabel62;
    private javax.swing.JLabel jLabel63;
    private javax.swing.JLabel jLabel64;
    private javax.swing.JLabel jLabel65;
    private javax.swing.JLabel jLabel66;
    private javax.swing.JLabel jLabel67;
    private javax.swing.JLabel jLabel68;
    private javax.swing.JLabel jLabel69;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel70;
    private javax.swing.JLabel jLabel71;
    private javax.swing.JLabel jLabel72;
    private javax.swing.JLabel jLabel73;
    private javax.swing.JLabel jLabel74;
    private javax.swing.JLabel jLabel75;
    private javax.swing.JLabel jLabel76;
    private javax.swing.JLabel jLabel77;
    private javax.swing.JLabel jLabel78;
    private javax.swing.JLabel jLabel79;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel80;
    private javax.swing.JLabel jLabel81;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLabel jLabel95;
    private javax.swing.JLabel jLabel96;
    private javax.swing.JLabel jLabel97;
    private javax.swing.JLabel jLabel98;
    private javax.swing.JLabel jLabel99;
    private javax.swing.JPanel jPanel12;
    private javax.swing.JPanel jPanel13;
    private javax.swing.JPanel jPanel14;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel9;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField10;
    private javax.swing.JTextField jTextField11;
    private javax.swing.JTextField jTextField12;
    private javax.swing.JTextField jTextField13;
    private javax.swing.JTextField jTextField14;
    private javax.swing.JTextField jTextField15;
    private javax.swing.JTextField jTextField16;
    private javax.swing.JTextField jTextField17;
    private javax.swing.JTextField jTextField18;
    private javax.swing.JTextField jTextField19;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField20;
    private javax.swing.JTextField jTextField21;
    private javax.swing.JTextField jTextField22;
    private javax.swing.JTextField jTextField23;
    private javax.swing.JTextField jTextField24;
    private javax.swing.JTextField jTextField25;
    private javax.swing.JTextField jTextField26;
    private javax.swing.JTextField jTextField27;
    private javax.swing.JTextField jTextField28;
    private javax.swing.JTextField jTextField29;
    private javax.swing.JTextField jTextField30;
    private javax.swing.JTextField jTextField31;
    private javax.swing.JTextField jTextField32;
    private javax.swing.JTextField jTextField33;
    private javax.swing.JTextField jTextField34;
    private javax.swing.JTextField jTextField35;
    private javax.swing.JTextField jTextField36;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField43;
    private javax.swing.JTextField jTextField44;
    private javax.swing.JTextField jTextField45;
    private javax.swing.JTextField jTextField46;
    private javax.swing.JTextField jTextField47;
    private javax.swing.JTextField jTextField48;
    private javax.swing.JTextField jTextField49;
    private javax.swing.JTextField jTextField5;
    private javax.swing.JTextField jTextField50;
    private javax.swing.JTextField jTextField51;
    private javax.swing.JTextField jTextField52;
    private javax.swing.JTextField jTextField53;
    private javax.swing.JTextField jTextField54;
    private javax.swing.JTextField jTextField55;
    private javax.swing.JTextField jTextField56;
    private javax.swing.JTextField jTextField57;
    private javax.swing.JTextField jTextField58;
    private javax.swing.JTextField jTextField59;
    private javax.swing.JTextField jTextField6;
    private javax.swing.JTextField jTextField60;
    private javax.swing.JTextField jTextField61;
    private javax.swing.JTextField jTextField62;
    private javax.swing.JTextField jTextField63;
    private javax.swing.JTextField jTextField64;
    private javax.swing.JTextField jTextField65;
    private javax.swing.JTextField jTextField66;
    private javax.swing.JTextField jTextField7;
    private javax.swing.JTextField jTextField8;
    private javax.swing.JTextField jTextField9;
    // End of variables declaration//GEN-END:variables

}
